总时间限制:
1000ms
内存限制:
65536kB
描述
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入
1 100
样例输出
25
————————————————————————————————————————————————————
思路:两个坑:1.未说明x,y谁大。2.时间超时,需要剪枝。
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<string>
#include<iostream>
#include<cstring>
#include<sstream>
using namespace std;
int check(int i){
int flag=0;
for(int j=2;j*j<=i;j++){
if(i%j==0){
flag++;break;
}
}
if(flag!=0) return 0;
else return 1;
}
int main(){
int start,end;int ans=0;
(cin>>start>>end).get();
if(start<=end){
for(int i=start;i<=end;i++){
if(i==1){continue;}
if(i==2){
ans++;continue;
}
if(i!=2&&i!=1&&check(i)){
ans++;
}
}
}
if(start>end){
int temp;
temp = start;
start = end;
end = temp;
for(int i=start;i<=end;i++){
if(i==1){continue;}
if(i==2){
ans++;continue;
}
if(i!=2&&i!=1&&check(i)){
ans++;
}
}
}
cout<<ans<<endl;
}