回 帖 发 新 帖 刷新版面

主题:c++程序

素数判定。
题目描述
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y),判断表达式的值是否是素数。
输入描述:
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
输出描述:
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
输入样例
0 1
0 0
输出样例
OK

回复列表 (共3个回复)

沙发

#include<stdio.h>
#include<math.h>
void main()
{
    int x,y,n,a,i,m;
    float k;
    while(scanf("%d%d",&x,&y),x||y)
    {
        if(y>x)
        {
        m=0;
        for(n=x;n<=y;n++)
        {
            a=n*n+n+41;
            k=sqrt(a);
            for(i=2;i<=k;i++)
            if(a%i==0)
            break;
            if(i>k)
            m++;
        }
        }
        if(m==y-x+1)
        printf("OK");
        if(x>y||m!=y-x+1)
        printf("Sorry");
        printf("\n");
    }
}
自己多思考下,以后最好是把你出错的程序发下,这样我们给你找出错误后你仔细研究研究,就能获得更大的提高0.0

板凳

知道了,谢谢。[em2]

3 楼


#include<iostream>
using namespace std;
bool sushu(int c){
    for(int i=2;i<c;i++)
        if(c%i==0)
            return true;
        return false;}
bool pand(int a,int b){for(int i=a;i<b+1;i++)
if(sushu(i*i+i+41)) return false;
return true;}


int main(){int a,b;
cout<<"please input two datas:"<<endl;
cin>>a>>b;
while(a!=0||b!=0){



if(pand(a,b))
cout<<"ok"<<endl;
else cout<<"sorry"<<endl;
cout<<"please input two datas:"<<endl;

cin>>a>>b;
}}

我来回复

您尚未登录,请登录后再回复。点此登录或注册