怎么下载网站模板,郑州地方网络推广网站,微信怎么自建小程序商店,wap登录是什么意思Problem Description 对于表达式n^2n41#xff0c;当n在#xff08;x,y#xff09;范围内取整数值时#xff08;包括x,y#xff09;(-39xy50)#xff0c;判定该表达式的值是否都为素数。
Input 输入数据有多组#xff0c;每组占一行#xff0c;由两个整数…Problem Description 对于表达式n^2n41当n在x,y范围内取整数值时包括x,y(-39xy50)判定该表达式的值是否都为素数。
Input 输入数据有多组每组占一行由两个整数xy组成当x0,y0时表示输入结束该行不做处理。
Output 对于每个给定范围内的取值如果表达式的值都为素数则输出OK,否则请输出“Sorry”,每组输出占一行。
Sample Input 0 1 0 0
Sample Output OK
思路分析
首先输入x、y是一个范围也就是【x,y】之间已知题意它有一个表达式nn2n41这里的n属于【x,y】范围内。 第一步需要将通过表达式计算之后的n给求出来判断其是否是素数。本人编写一个自定义函数来进行判断n是否是素数若是素数返回0不是返回1 第二步对最后的结果进行分类总结即可
代码如下
#includestdio.h
#includemath.h
int is(int n);int main(){int sum,i,j,k,n;int x,y;while(scanf(%d %d,x,y)!EOF){if(x0y0)break;//输入0 0 表示结束for(ix;iy;i){ni*ii41;if(is(n))break;//如果返回的是1代表不是素数}if(iy)printf(OK\n);//再进行判断若iy表示是循环完整结束即为素数else printf(Sorry\n);//循环不正当结束表示之间有不是素数的数存在}return 0;}int is(int n){//自定义判断是否是素数的函数若是素数返回0否则返回1int i;if(n%20)return 1;//偶数都不是素数返回1int x sqrt(n);//这里是为了减少运算量for(i3;ix;i2){//这里的ii2是因为偶数都不是素数不需要判断了第一个if里面已经筛选过了if(n%i0)break;//存在有其他数可以被它整除即不是素数结束循环即该数不是素数}return i x ? 0 : 1;//当循环结束之后存在两种情况一种是进入if中结束循环、另一种则是循环完整结束如果ix表示循环完整结束也就是说从3~√n之间都不可以被它整除即它是素数则返回0反之返回1
参考博客https://blog.csdn.net/tigerisland45/article/details/51761340