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

    思路:
    从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) + "毫秒"); } }
运行结果:

 

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信