素数判定 SDUT 1241
2015-08-03 20:59
197 查看
题目描述
对于表达式n2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x,y<=50),判定该表达式的值是否都为素数。输入
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。输出
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。示例输入
0 1 0 0
示例输出
OK
由于范围比较小,开始对方程打了个表,看看最大是多大,发现最大是2591,直接对3000以内的素数打表就OK了。
#include<stdio.h> #include<string.h> #include<math.h> int main() { int a[10010],b[100100]; int n,m; int k=-39; memset(b,0,sizeof(b)); for(int i=0; i<=89; i++) { a[i]=k*k+k+41; k++; } for(int i=2; i<3000; i++) { for(int j=2; j<=sqrt(i); j++) { if(i%j==0) { b[i]++; } } } int c; while(~scanf("%d%d",&n,&m)) { c=0; if(n==0&&m==0)break; for(int i=n; i<=m; i++) { if(b[a[i+39]]==0) { c++; } } if(c==m-n+1) printf("OK\n"); else printf("Sorry\n"); } return 0; }
相关文章推荐
- ZOJ 题目1024 Additive equations(DFS)
- C#中 栈和堆上变量的运行速度, 装箱拆箱速度
- Havok_2014-1-0_Pc_Xs_User_Guide(1.1.1-简介)
- 我终于也遇到内存泄漏了
- C#对话框(OpenFileDialog、SaveFileDialog 、ColorDialog、FontDialog)
- 第六章分组函数
- NTFS交换数据流实现文件隐藏
- MySQL--SELECT
- 图像的直方图
- Elasticsearch集群配置以及REST API使用
- poj 1065 Wooden Sticks 【贪心 新思维】
- (剑指Offer)面试题53:正则表达式匹配
- 背包问题------
- IOS开发之block的使用
- thinkphp学习(一)
- MS SQL执行大脚本文件时,提示“内存不足”的解决办法
- MS SQL执行大脚本文件时,提示“内存不足”的解决办法
- 关于SQLSERVER2008R2安装问题
- 暑假-动态规划 III-(V - Coins)
- Machine Schedule HDoj (二分图最小顶点覆盖--最大匹配数)