1007. 素数对猜想
2017-10-14 14:34
190 查看
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
输出样例:
4
运行超时,不解
#include"stdio.h"
#include"math.h"
int main()
{
int n,i,k,a[10000];
int j=0,s=0;
scanf("%d",&n);
for(k=2;k<=n;k++){
for(i=2;i<=sqrt(k);i++)
if(k%i==0) break;
if(i>sqrt(k)){
a[j]=k;
j++;
}
}
for(i=0;i<j-1;i++)
if(a[i+1]-a[i]==2) s++;
printf("%d",s);
return 0;
}
不超时的
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
#include"stdio.h" main() { int n,i,k,a[10000]; int j=0,s=0; scanf("%d",&n); for(k=2;k<=n;k++) {for(i=2;i<k;i++) if(k%i==0) break; if(i==k) {a[j]=k; j++;} } for(i=0;i<j-1;i++) if(a[i+1]-a[i]==2) s++; printf("%d",s); }
运行超时,不解
#include"stdio.h"
#include"math.h"
int main()
{
int n,i,k,a[10000];
int j=0,s=0;
scanf("%d",&n);
for(k=2;k<=n;k++){
for(i=2;i<=sqrt(k);i++)
if(k%i==0) break;
if(i>sqrt(k)){
a[j]=k;
j++;
}
}
for(i=0;i<j-1;i++)
if(a[i+1]-a[i]==2) s++;
printf("%d",s);
return 0;
}
不超时的
相关文章推荐
- pat 1007. 素数对猜想 (20)
- PAT 1007. 素数对猜想 python 运行超时问题解决方案
- 1007. 素数对猜想 (20)
- PAT 1007. 素数对猜想 (20)
- pat 1007. 素数对猜想 (20)
- PAT-B 1007. 素数对猜想
- 1007. 素数对猜想 (20) (ZJUPAT 数学)
- 1007. 素数对猜想 (20) JAVA
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)——素数判断算法
- PAT(乙)-1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- PAT(Basic Level)_1007_素数对猜想
- 1007. 素数对猜想 (20)
- 【PTA乙级】1007. 素数对猜想 (20)——注意问题
- 1007. 素数对猜想 (20)
- PAT1007 BASIC:素数对猜想 (20)
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想