Cod sursa(job #1688741)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 13 aprilie 2016 18:24:01
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
using namespace std;
ifstream fi ("fractii.in");
ofstream fo ("fractii.out");
int i,j,maxi,nr,fr[1000006],nr_prime[1000006],b[1000006][7],n,s,p;
int main()
{
    fi>>n;
//    for (i=0;i<=n;i++) nr_prime[i]--;
    for (i=2; i<=n; i++)
        if (fr[i]==0)
        {
            for (j=i+i; j<=n; j=j+i)
            {
                fr[j]++;
                nr_prime[j]++;
                b[j][nr_prime[j]]=i;
            }
        }
    for (i=1;i<=n;i++)
    {
        if (nr_prime[i]>0) p=i;
        else p=i-1;
        for (j=1;j<=nr_prime[i];j++)
            p=p-p/b[i][j];
        s+=p*2;
        if (nr_prime[i]>maxi)
        {
            maxi=nr_prime[i];
            nr=i;
        }
    }
    if (n==1) s=1;
    else if (n==2) s=3;
    else s++;
    fo<<s;
    return 0;
}