1971-判断素数
来源:互联网 发布:电信宽带免费提速软件 编辑:程序博客网 时间:2024/06/06 05:02
【C系列4.3】函数训练之素数判断(预处理篇) 1971
Time Limit: 1 s Memory Limit: 32 MB
Submission:473 AC:86 Score:21.74
Description
cyn小朋友昨天刚学了素数的判断,结果今天他就忘了,你能帮他完成老师给他布置的素数判断作业吗?(主函数代码部分已经固定,请按需写函数部分,如果提交的不是c语言则需要写全部代码)
#include<stdio.h>#include<string.h>#include<math.h>int isPrime[1000011];void getprime();int main(){ int t; scanf("%d",&t); getprime(); while(t--) { int n; scanf("%d",&n); if(isPrime[n]) { printf("YES\n"); } else { printf("NO\n"); } } return 0;}
Input
第一行输入一个T,表示有T组数据。
接下来T行,每行只有一个整数n(1 <= n <= 1000000),代表你需要验证的整数。
Output
对于每一个n,若是素数就输出“YES”,否则输出“NO”
Samples
input:
4
1
2
3
4
output:
NO
YES
YES
NO
Hint
大数据请用scanf与printf读入和输出。本题目涉及全局变量和数组的知识,可以先预习数组章节再完成本题。
下附AC代码:
#include<stdio.h>#include<string.h>#include<math.h>#define MAXV 1000011int isPrime[MAXV + 1];int prime[MAXV + 1]; int size=0; void getprime();int main(){ int t; scanf("%d",&t); getprime(); while(t--) { int n; scanf("%d",&n); if(isPrime[n]) { printf("YES\n"); } else { printf("NO\n"); } } return 0;}void getprime() {int i, j, k, n;isPrime[1] = 0;for (i = 2; i <= 1000000; i++) {k = sqrt(i);for (j = 2; j <= k; j++) {if (0 == i % j)break;}if (j > k)isPrime[i] = 1;elseisPrime[i] = 0;}}
原题链接:http://acm.hznu.edu.cn/OJ/problem.php?cid=1092&pid=4
阅读全文
0 0
- 1971-判断素数
- 素数判断
- 判断素数
- 判断素数
- 判断素数
- 素数判断
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 素数判断
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- 判断素数
- Omnigraffle Pro 6安装与注册码
- 设计模式之适配器模式
- ACTION中定义的变量,怎么传值到JSP页面
- Docker+OpenvSwitch走进VxLAN的世界
- iOS textview加载html并改变图片大小
- 1971-判断素数
- Mastering Web Application Development with AngularJS-Packt 2013 读书笔记(不错的好书!)
- Node -- 构建HTTP服务
- HadoopHelper使用说明
- 混合开发-webview和原生交互
- 利用DBLink+JOB实现两个Oracle数据库之间的数据同步
- 关于PHP trait、生成器
- 图解HTTP
- 1639