题目:
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
PS:欧拉素数筛筛出素数存入数组,遍历数组相邻元素,计差值为2的相邻元素数
源码:
//Liu #includeusing namespace std; const int maxn = 1e5 + 5; bool vis[maxn]; int prime[maxn]; int Euler_prime(int n) { int c = 0; memset(vis, 0, sizeof(vis)); for (int i = 2; i <= n; i++) { if (!vis[i]) prime[++c] = i; for (int j = 1; j <= c && i * prime[j] < n; j++) { vis[i * prime[j]] = 1; if (!(i % prime[j])) break; } } return c; } int main() { int n; cin >> n; int count = Euler_prime(n); int ans = 0; for (int i = 1; i < count; i++) if (prime[i + 1] - prime[i] == 2) ans++; cout << ans << endl; return 0; }
原题地址:《PTA1007 素数对猜想》
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)