用Java输出输出素数

/*
    输出两个整数范围内的所有素数并且统计个数和所使用的时间

    思路:
    从2开始,到一个数-1结束,都不能被这个数本身除尽,则是素数;
    可以用 isFlag表示是否被除尽,一旦被除尽,就break终止该循环;(优化一)
    每找到一个素数后一定要重置isFlag的值进行下一次寻找;
    从较小的数开始到较大的数,循环次数是 j * j < i或者j<=Math.sqrt(i);(优化二)

    知识点:
    long start = System.currentTimeMillis();
    可以获得当时的毫秒数
*/

    import java.util.Scanner;

    class SuShu{
    
	public static void main(String[] args){
	
		Scanner scan = new Scanner(System.in);

		System.out.println("请输入第一个整数范围");
		int x1 = scan.nextInt();

		System.out.println("请输入第二个整数范围");
		int x2 = scan.nextInt();

		int min = (x1<x2)? x1:x2;
		int max = (x1>x2)? x1:x2;

		boolean isFlag = true;
		int count = 0;

		long start = System.currentTimeMillis();//记录开始时间

		System.out.println(min + "到" + max + "之间的素数有:");

		for (int i = min;i <= max;i++){

			for (int j = 2;j<=Math.sqrt(i);j++){

				if(i % j==0){
					isFlag = false;
					break;
				}
			}

			if(isFlag == true){
				System.out.print(i + " ");
				count ++;
				if(count % 6 ==0){
					System.out.println(" ");
				}
			}

			isFlag = true;
		}
		
		long end = System.currentTimeMillis();

		System.out.println(" ");
		System.out.println(" ");
		System.out.println( min + "到" + max + "之间的素数有" + count + "个");
		System.out.println("用时" + (end - start) + "毫秒");
	}
    }

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北酥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值