Cod sursa(job #1785778)

Utilizator NazareDanielaNazare Daniela Andreea NazareDaniela Data 21 octombrie 2016 22:37:16
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int produs (int n)
{
    int d=2,s,k=1;

    while(n>1)
    {
        s=0;
        while(n%d==0)
        {
            n=n/d;
            s++;
        }
        if(s!=0)
            k=k*(d-1)*pow(d,s-1);
        d++;
    }
    return k;

}

int v[1000001];
int main()
{
    ifstream f("fractii.in");
    ofstream g("fractii.out");
    int i,j,k=1,n;
    f>>n;
    v[1]=1;
    for(i=2; i<=sqrt(n); i++)
        if(v[i]==0)
            for(j=i*i; j<=n; j+=i)
                v[j]++;
    for(i=2; i<=n; i++)
        if(v[i]==0)
            k=k+(2*i)-2;
        else
            k+=2*produs(i);
    g<<k;
    return 0;
}