Cod sursa(job #1199902)

Utilizator borzakroMiron Stefan borzakro 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";

    }