2 条题解
-
0
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int mod=1e9+7, N=1e6+5; LL n, pr, prime[N]; bool v[N]; void get_prime() { pr=0; memset(v, 0, sizeof(v)); for(LL i=2; i<=1000000; i++) { if(v[i]==0) prime[++pr]=i; for(int j=1; (j<=pr) && (i*prime[j] <=1000000); j++) { v[i * prime[j]]=1; if(i % prime[j] ==0) break; } } } int main() { get_prime(); bool bk; while(scanf("%lld", &n)!=EOF && n) { bk=0; for(LL i=1; i<=pr; i++) if(!v[n-prime[i]]){bk=1; printf("%lld = %lld + %lld\n", n, prime[i], n-prime[i]); break;} if(!bk) printf("Goldbach's conjecture is wrong.\n"); } return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int mod=1e9+7,N=1e6+5; LL n,pr,prime[N]; bool v[N]; void get_prime() { pr=0;memset(v,0,sizeof(v)); for(LL i=2;i<=1000000;i++) { if(v[i]==0) prime[++pr]=i; for(int j=1;(j<=pr)&& (i*prime[j]<=1000000);j++) { v[ i * prime[j] ]=1; if( i % prime[j] ==0) break; } } } int main() { get_prime(); bool bk; while(scanf("%lld",&n)!=EOF && n) { bk=0;for(LL i=1;i<=pr;i++)if(!v[n-prime[i]]){bk=1;printf("%lld = %lld + %lld\n",n,prime[i],n-prime[i]);break;} if(!bk)printf("Goldbach's conjecture is wrong.\n"); } return 0; }
- 1
信息
- ID
- 1764
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 174
- 已通过
- 48
- 上传者