文章

27

粉丝

492

获赞

10

访问

256.7k

头像
java实现素数筛选法
P1701 厦门大学2017年机试题
发布于2020年4月17日 19:53
阅读数 10.6k

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int a=sc.nextInt();
			int b=sc.nextInt();
			int count=0;
			boolean flag[]=new boolean[b+1]; //记录数的状态,默认都是素数
		
			for(int i=2;i<=b;i++) { //这里可以优化成Math.sqrt(b)
				if(flag[i]==false) { //是素数
					for(int j=i+i;j<=b;j+=i) { //素数的倍数都不是素数
					flag[j]=true; //不是素数
				}
				}
			}
			for(int i=a;i<=b;i++) {
				if(a==1) 
					flag[1]=false; //1是素数
				if(flag[i]==true) { //不是素数
					count++;
				}
			}
			System.out.println(count);
		}	
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发