Cod sursa(job #1199902)
Utilizator | Data | 21 iunie 2014 02:27:19 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.03 kb |
/*
Orice nr par > 2 poate fi scris sub forma unei sume de 2 nr prime.
Pt un N dat, sa se verifice afirmatia pt numerele pare <=N.
*/
# include <iostream>
using namespace std;
int n,nr,x;
bool w[10000];
void ciur(int k)
{
for(int i=2; i<=k; ++i)
w[i]=1;
for(int i=2; i<=k; ++i)
if(w[i])
{
++nr;
for(int j=i+i; j<=k; j=j+i)
w[j]=0;
}
}
int verif(int m)
{
for(int i=2;i<m;++i)
if(w[i])
for(int j=2;j<m;++j)
if(w[j])
if(i+j==m)
{
cout<<m<<"="<<i<<"+"<<j<<'\n';
return 1;
}
return 0;
}
int main()
{
cin>>n;
ciur(n);
for(int i=4;i<=n;i+=2)
if(!verif(i)) ++x;
if(x) cout<<"Nu verifica\n";
else cout<<"Verifica\n";
}