読者です 読者をやめる 読者になる 読者になる

川のブログ

川の適当気ままなブログです。 

AOJ 0185 Goldbach's Conjecture II

AOJ volume1

こんにちは川です。

最近volume0をやっていてだんだん解ける問題が少なくなってきたので新たに勉強したいなと思っています。

今回は0056のやつの入力される値がでかくなったやつですね。

これに対抗するためにprimeをint型からbool型に変えただけですね。

0056の解説は下にリンクを張っています。

kawakawa.hatenablog.com

 

ソースコード

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
bool prime[1000001];
for(int i=2;i<1000001;i++)prime[i]=0;
for(int i=2;i<=sqrt(1000000);i++){
if(prime[i]==0){
for(int j=i+i;j<1000001;j+=i)prime[j]=1;
}
}
int n,cou=0;
while(cin>>n&&n!=0){
for(int i=2;i<=n/2;i++)if(prime[i]==0&&prime[n-i]==0)cou++;
cout<<cou<<endl;
cou=0;
}
}