质数判断
来源:互联网 发布:周琦数据历史数据 编辑:程序博客网 时间:2024/05/17 00:02
求质数:
bool isPrime(int x) { int y = sqrt(x); for (;x % y != 0;y--) { ; } return y == 1; }
题目:
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:20输出样例:
4
数据大超时代码:
#include <stdio.h>#include <math.h>bool isPrime(int x);int main(){#ifdef ONLINE_JUDGE#elsefreopen("C:\\in.txt", "r", stdin);#endifint n;while(scanf("%d", &n)!= EOF){int prime[100000];int i, cn=1;for(i=1; i<=n;i++){if(isPrime(i)){prime[cn++]=i;}}//全部质数int ans=0;for(i=1;i<cn-1;i++){if(prime[i+1]-prime[i] == 2)ans++;}printf("%d\n", ans);}return 0;}bool isPrime(int x) { if ( x == 2) { return true; } //超时原因:太多循环 int y = x/2; for (;x % y != 0;y--) { ; } return y == 1; }
AC代码:
#include <stdio.h>#include <math.h>bool isPrime(int x);int main(){ #ifdef ONLINE_JUDGE#else freopen("C:\\in.txt", "r", stdin);#endif int n; while(scanf ("%d", &n)!= EOF){ int prime[100000]; int i, cn=1; for(i=1; i<=n;i++){ if(isPrime(i)){ prime[cn++]=i; } }//全部质数 int ans=0; for(i=1;i<cn-1;i++){ if(prime[i+1]-prime[i] == 2) ans++; } printf("%d\n", ans); } return 0;}bool isPrime(int x) { int y = sqrt(x); for (;x % y != 0;y--) { ; } return y == 1; }
0 0
- 判断质数
- 判断质数
- 质数判断
- 判断质数
- 判断质数
- 质数判断
- 判断质数
- 判断质数
- 判断质数
- 判断质数
- 判断质数
- 判断质数
- 判断质数
- 质数判断
- C++进行质数判断
- 判断质数源码
- 质数、合数快速判断
- C语言质数判断
- 【PAT1014】 Waiting in Line (30) queue模拟排队
- GTK+中笔记本控件(NoteBook)使用说明
- WhatsApp创始人:从领救济到身价68亿
- 快速排序_quick_sort
- 2014,智能电视与功能电视的岔路口
- 质数判断
- iOS 的 ASIHTTPRequest 类库简介和使用说明
- C# 通过线程更新UI
- 小众漫画下载器
- Linux Kernel启动中参数的处理
- udp的connect操作
- C++Primer (第四版) 第四章 数组和指针
- UITabBarController自定义(一)
- 黑马程序员_函数