Cod sursa(job #2350003)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 20 februarie 2019 22:15:22
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <bits/stdc++.h>
#define NMAX 1000010
#define ll long long
using namespace std;

ll P[NMAX];
ll s=0;

void phi(int n){
	for(int i=0;i<=n;i++)P[i]=i-1;
	for(int i=2;i<=n;i++){
		s+=P[i];
		if(P[i]==i-1)//Daca i e prim
		for(int j=i;j>0 && j<=n;j+=i){//Cercetam toti multiplii lui i si le scadem (astfel scadem toti multiplii numerelor prime din P[j])
			int c=P[j]/i;
			P[j]-=c;
		}
	}
}

int main(){
	int n;
	ifstream cin("fractii.in");
	ofstream cout("fractii.out");
	cin>>n;
	phi(n);
	cout<<s*2+1;
	return 0;
}