0
已解决
邓犁
高级守护
高级守护
5381 判断素数对经验值:800
题目描述 Description
给出两个数字x和y,试判断,x后的第一个素数是否是y。
输入描述 Input Description
一行,两个整数,x y
输出描述 Output Description
如果x后面的第一个素数是y,则输出"yes";否则输出"no",并输出正确的素数,用空格隔开
样例输入 Sample Input
【样例输入1】 7 11 【样例输入2】 7 9
样例输出 Sample Output
【样例输出1】 yes 【样例输出2】 no 11
数据范围及提示 Data Size & Hint
2<=x<=y<=50
- #include<iostream>
- #include<string>
- using namespace std;
- int a[20]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
- int main()
- {
- int x,y,f=0;
- cin>>x>>y;
- for(int i=1;i<=15;i++)
- {
- if(a[i]>x&&a[i]==y&&x!=y)
- {
- cout<<"yes";
- f=1;
- break;
- }
- }
- if(f==0)
- {
- cout<<"no"<<' ';
- for(int i=1;i<=15;i++)
- {
- if(a[i]>x)
- {
- cout<<a[i];
- break;
- }
- }
- }
- return 0;
- }
- 80分!!!
- 求解
0
已采纳
荣逸乐
资深守护
资深守护
bool j(int n){ //判断质数函数
if(n==1) return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
主函数:
int i=x+1;
while(i){
if(j(i)&&i==y){
输出<<"yes";
return 0;
}
else if(j(i)&&i!=y){
输出<<"no "<<i;
return 0;
}
i++;
}
0
0