Cod sursa(job #2491020)

Utilizator carolmb1016Bazga Carol carolmb1016 Data 11 noiembrie 2019 17:26:02
Problema Fractii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;

bool ciur[1000001];
//int numere[78500];
int euler(int n){
    int p=0;
    if(!ciur[n]&&n>1)
        return n-1;
    else{
        for(int i=1; i<=n; i++){
            int m=n, e=i, r;
            while(e!=0){
                r=m%e;
                m=e;
                e=r;
            }
            if(m==1)
                p++;
        }
    }
    return p;
}

int main()
{
    int i, j, nr=0, n;
    long long suma=0;
    ifstream in("fractii.in");
    ofstream out("fractii.out");
    in>>n;
    for(i=2; i<=n; i++){
        if(!ciur[i]){
            //numere[nr++]=i;
            for(j=i*2; j<=n; j+=i)
                ciur[j]=true;
        }
        suma+=2*euler(i);
    }
    suma++;
    out<<suma;
    return 0;
}