原题链接:判决素数个数
总时间限制:
1000ms
内存限制:
65536kB
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入
1 100
样例输出
25
题记:
这道题看似简单却有个小坑,x并不一定小于y,所以可能需要对调一下。
考虑到这一点在结合素数判定就没问题了。
C++程序如下:
#include<iostream>
using namespace std;
int main(){
int x, y, t, count=0, flag;
cin >> x >> y;
if(x > y){
t = x;
x = y;
y = t;
}
for(int i=x; i<=y; i++){
flag=1;
for(int j=2; j*j<=i; j++){
if(i%j == 0){
flag = 0;
break;
}
}
if(i!=1 && flag){
count ++;
}
}
cout << count << endl;
return 0;
}