给出一个闭区间的两端l和r,输出[l,r]中素数的个数。
输入格式:
两个整数l和r,之间用空格隔开(1<l<=r<=10000)。
输出格式:
输出一个结果。
输入样例:
2 10
输出样例:
4
import java.util.Scanner; public class Main { static final int N = 10005; static int m,n; static int[] prime = new int[N]; static boolean[] check = new boolean[N]; static void init(){ int temp; check[1]=true; for(int i=2;i<=n;++i){ if(!check[i]) prime[++prime[0]]=i; for(int j=1;j<=prime[0];++j){ temp=i*prime[j]; if(temp>n) break; check[temp]=true; if(i%prime[j]==0) break; } } } public static void main(String[] args){ Scanner scanner = new Scanner(System.in); m=scanner.nextInt(); n=scanner.nextInt(); init(); int count=0; for(int i=m;i<=n;++i){ if(!check[i]) count++; } System.out.println(count); } }