2017-12-10杭电OJ2012 《素数判定》
2017-12-10 11:09
232 查看
1.题目描述
Problem Description对于表达式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
2.源代码
#include<iostream> using namespace std; bool fun(int a) { int i,j=0; for(i=2;i<a;i++) if(a%i==0) j++; if(j>0) return false; else return true; } int main() { int x,y; while(cin>>x>>y) { if(x==0&&y==0) break; int n,sum,j=0; for(n=x;n<=y;n++) { sum=n*n+n+41; if(fun(sum)==1) j++; } if(j==(y-x+1)) cout<<"OK"; else cout<<"Sorry"; cout<<endl; } }
3.运行截图
4.调试信息
这道题我将素数判定的部分写成了一个bool函数。我写代码的时候也是因为粗心,没有对函数部分仔细想想,if判断素数写的不是很好,后来才想到,于是修改了一下,添上了9~12行。
还有就是,x~y一共是(y-x+1)个数,这个地方那会也没注意到。
相关文章推荐
- 杭电oj编码2012
- 【杭电oj2012】素数判定
- 杭电oj 2012 素数判定
- 2017-12-10杭电OJ2010 《水仙花数》
- 2017-12-10杭电OJ2011 《多项式求和》
- 【杭电-oj】-2012-素数判定
- 杭电OJ 2012 2014年9月25日11:58:03
- 2017-12-10杭电OJ2015《偶数求和》
- 杭电oj2012 c++
- 大数的加法运算,杭电oj-1002
- 杭电OJ-2032_杨辉三角
- 杭电oj1004最流行的气球颜色
- 杭电 OJ 1098
- 【杭电oj】1875 - 畅通工程再续(克鲁斯塔尔)
- 杭电oj 2025
- 【杭电OJ】最小公倍数
- 杭电oj 1061题AC代码
- 杭电 OJ 1282 回文数猜想
- 分治算法五(最近点对---杭电OJ 1007 Quoit Design)
- 【杭电OJ】第几天