package rs.narcissus;
import java.util.*;public class NarcissusNum {/** * @param args */public static void inPut() {long sum = 0L;int sing;long num;List<Long> listnum = new ArrayList<Long>();Scanner scanner = new Scanner(System.in);System.out.println("请输入最大整数:");String
str = scanner.nextLine().trim();while(!isNumeric(str)) {System.out.println("您输入的不是整数,请重新输入:");str = scanner.nextLine().trim();}for(num=1; num<Long.parseLong(str); num++) {String strnum = num + "";for(int i=0; i<strnum.length(); i++) {sing = strnum.codePointAt(i)
- 48;//System.out.println("sing=" + sing);sum = sum + sing*sing*sing;}long t = sum;sum = 0L;//System.out.println("sum=" + sum);//System.out.println("***********");if(num == t){listnum.add(num);}}System.out.println("在1-" + Long.parseLong(str) + "之间的数中,水仙花数有:\n");for(int
j=0; j<listnum.size(); j++) {System.out.print(listnum.get(j) + "--");}}public static boolean isNumeric(String str) {for (int i = str.length(); --i >= 0;) {if (!Character.isDigit(str.charAt(i))) {return false;}}return true;}public static void main(String[]
args) {inPut();}}
package rs.primenum;
import java.util.*;
public class PrimeNum {
public static boolean isNumeric(String str) {
if(str.length() > 5) {
return false;
}
for (int i = str.length(); --i >= 0;) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
public static boolean surePrime(int num) {
boolean flag = true;
if (num <= 1) {
flag = false;
} else {
for (int k = 2; k <= Math.sqrt(num); k++) {
if (num % k == 0) {
flag = false;
break;
}
}
}
return flag;
}
public static void printPrime() {
List<Integer> list = new ArrayList<Integer>();
int num;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数:");
String str1 = scanner.nextLine().trim();
while(!isNumeric(str1)) {
System.out.println("您输入的不是有效长度内的整数,请重新输入:");
str1 = scanner.nextLine().trim();
}
System.out.println("请输入第二个数:");
String str2 = scanner.nextLine().trim();
while(!isNumeric(str2)) {
System.out.println("您输入的不是有效长度内的整数,请重新输入:");
str1 = scanner.nextLine().trim();
}
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
if(num1 > num2) {
int tem = num1;
num1 = num2;
num2 = tem;
}
for (num = num1; num < num2; num++) {
if (surePrime(num)) {
list.add(num);
}
}
System.out.println("*************************************");
System.out.println("在" + num1 + "-" + num2 + "之间的素数有:");
for (int i = 0; i < list.size(); i++) {
int listnum = list.get(i);
System.out.print(listnum + " ");
}
System.out.println("\n共有(" + list.size() + ")个.");
}
public static void main(String[] args) {
printPrime();
}
}