水仙花数/素数

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();
	}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值