[PAT乙] 1007. 素数对猜想 (20)
来源:互联网 发布:阿里云盾占用80端口 编辑:程序博客网 时间:2024/05/17 04:01
1007. 素数对猜想 (20)
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
比较简单:
#include <iostream>using namespace std;bool isPrime(int a) { if(a==1) return false; for(int i=2; i*i<=a; ++i) { if(a%i==0) return false; } return true;}int main(){ int N; int num = 0; cin >> N; for(int i=3; i<=N; ) { int j; for(j=i+2; !isPrime(j); j+=2); //此处得注意,万一j+2后越界了,不可以算作以一个有效值 if(j==i+2 && j<=N) ++num; i = j; } cout << num; return 0;}
值得一提的是,在之前PTA的时候我遇到这一题,写的比较复杂
#include <iostream>#include <vector>using namespace std;bool fuc(int n) { for(int i=2; i*i<=n; ++i) { if(n%i==0) return true; } return false;}int main() { vector<int> res; int num,count=0; cin>>num; if(num>3) { for(int i=3; i<=num; ++i) { if(!fuc(i)) res.push_back(i); } for(auto i=res.begin()+1; i!=res.end(); ++i) { if(*i-*(i-1)==2) ++count; } } else { count=0; } cout<<count; return 0;}
阅读全文
0 0
- [PAT乙] 1007. 素数对猜想 (20)
- pat 乙 1007. 素数对猜想
- PAT+乙1007. 素数对猜想
- PAT 1007. 素数对猜想 (20)
- PAT - 1007. 素数对猜想 (20)
- PAT(B)1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)PAT 乙级
- PAT 1007. 素数对猜想 (20)
- PAT 1007. 素数对猜想 (20)
- PAT 乙级 1007. 素数对猜想 (20)
- Java - PAT - 1007. 素数对猜想 (20)
- PAT-乙级-1007. 素数对猜想 (20)
- PAT-B 1007. 素数对猜想 (20)
- PAT乙级1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)-PAT乙级
- PAT乙级 1007. 素数对猜想 (20)
- PAT乙级 1007. 素数对猜想 (20)
- PAT乙级1007. 素数对猜想 (20)
- 政策变化不属于“不可抗力”?
- clean-code-php
- 2018小红书校招软件研发在线笔试编程第二题
- 23. Merge k Sorted Lists(divide and conquer)
- 单独编译工模&push替换烧写
- [PAT乙] 1007. 素数对猜想 (20)
- Android AIDL学习(二)
- Android 命令行获取apk信息
- Java 信号量
- Android 6.0 权限管理
- Android MediaPlayer播放音频与视频
- Android MimeTypeMap使用--MIME类型
- Android 横竖屏切换
- Android RecyclerView使用