Cod sursa(job #2883825)

Utilizator Frant_IoanaFrant Ioana Frant_Ioana Data 1 aprilie 2022 20:59:33
Problema Fractii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("fractii.in");
ofstream fout("fractii.out");
int cmmmdc(int a, int b){

    while(b!=0){

        int r = a % b;
        a = b;
        b = r;
    }
    return a;
}
int n, i, j, vec[1000001], cnt;
int main(){

    for(i = 1; i <= 1000000; i++) vec[i] = i;
    for(i = 2; i <= 1000000; i++){
        if(vec[i] == i){
            vec[i]--; 
            for(j = 2; j * i <= 1000000; j++)
                vec[i*j] = vec[i*j] / i * (i - 1);
        }
    }

    fin >> n;
    cnt += n;
    for(i = 2; i <= n; i++){
        cnt += vec[i];
        for(j = i + 1; j <= n; j++){
            if(cmmmdc(i , j) == 1) cnt++;
        }
    }
    fout << cnt;

}