Cod sursa(job #796475)

Utilizator ionutz_cnnbIonutz cnnb ionutz_cnnb Data 11 octombrie 2012 16:55:51
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <math.h>
using namespace std;
int prim(int k)
{
    for(int i=2;i<=sqrt(k);i++)
    {
        if(k%i==0) return 0;
    }
    return 1;
}
int main()
{
    int n,a[500000],i,j;
    ifstream f("ciur.in");
    ofstream g("ciur.out");
    f>>n;
    if(prim(n)==0)
    {
        for(i=2;i<=n;i++)
        {
            a[i]=i-1;
        }


        for(i=2;i<=n;i++)
        {
            for(j=i+i;j<=n;j+=i)
            {
                a[j]-=a[i];
            }
        }
        g<<a[n];
    }
    else g<<n-1;
    return 0;
}