问题标题: 酷町堂:5381

0
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
蔡乐毅
蔡乐毅
高级光能
高级光能

我弱弱的说一句:不应该是0~14吗下标好像弄错了

我要回答