A(素数判定)

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。

Input

输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。

Output

对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。 

Sample Input

0 1

0 0

Sample Output

OK

   Problem - 2012----------->原题(HDJ)

参考:

Discuss Reply

杭电acm2012素数判定_panda_新浪博客

https://wenku.baidu.com/view/e75977bcc77da26925c5b0a4.html

hdu 2012 - ysc504的专栏 - CSDN博客


#include<math.h>

#include<stdio.h>

int prime(int a){

int i;

if(a%2==0)return 1;

for(i=1;i<=sqrt(a);i+=2)

if(a%i==0)

break;

if(i>sqrt(a))return 0;

else return 1;

}

int main()

{

int x,y,sum,i;

    while(~scanf("%d%d",&x,&y)&&x+y){

    count=0;


    for(i=x;i<=y;i++){

    sum =i*i+i+41;

if(prime(sum))break;

}

if(i>y)

printf("OK\n");

else printf("Sorry\n");

}

  return 0;

}


居然在最后六分钟AC了。。。

#include<math.h>

#include<stdio.h>

int main()

{

int x,y,sum,i,j,count;

    while(~scanf("%d%d",&x,&y)&&x+y){

for(i=x,count=0;i<=y;i++){

    sum =i*i+i+41;

for( j=2;j<=sqrt(sum);j++)

if(sum%j==0)

break;

if(j>sqrt(sum)&&(sum!=1))

count++;

}

if(count==y-x+1)

printf("OK\n");

else printf("Sorry\n");

}

getchar();

  return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,425评论 0 2
  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 10,738评论 3 71
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,353评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,170评论 0 41
  • 午夜,迷失海棠晓月 我在路边徘徊,看着陌生的环境,一片朦胧的黑暗。海棠晓月,多么美丽的名字,就像是盛开娇艳的牡丹亦...
    奚帅粑粑阅读 459评论 0 0