Cod sursa(job #2253718)

Utilizator whitewolf3131Ursu Laurentiu Cristian whitewolf3131 Data 4 octombrie 2018 12:15:17
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>
#include <iostream>
#include <string>

using namespace std;

ifstream in("fractii.in");
ofstream out("fractii.out");
long long totneg=0;
bool v[1000000];
long long n;
long long cmmdc(long long a, long long b, long long aux){
        long long c;
        while(b){
            c=a%b;
            a=b;
            b=c;
        }
        if(a==aux){
            return a;
        }
        else{
            long long ca=a;
            while(a>1){
                if(a%aux!=0){
                    return ca;
                }
                else{
                    a/=aux;
                }
            }
            return aux;
        }
    }
void ciur(){
    
    for(long long i=2; i<=n; i++){
        if(!v[i]){
            for(long long j=i+i; j<=n; j+=i){
                v[j]=true;
                long long corr=1;
                for(long long k=j-i; k>=i+i; k-=i){
                    if(cmmdc(j, k, i)==i){
                        corr++;    
                    }    
                }
                totneg+=corr*2;
            }
        }
    }    
}

int main()
{
    cin>>n;
    long long tot=n*n;
    ciur();
    totneg+=n-1;
    cout<<tot-totneg;
}