Cod sursa(job #826463)

Utilizator Alexxino7Alexandru Popescu Alexxino7 Data 30 noiembrie 2012 19:24:45
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
#include<cstring>
#include<vector>
using namespace std;
#define MIL 1000003

ifstream fin("fractii.in");
ofstream fout("fractii.out");

bool Prime[MIL];
long long Sol,Sus[MIL],Jos[MIL];
int N;

void ciur(){
	int i,j;
	//memset(Jos,1,sizeof(Jos));
	
	for(i=1;i<MIL;i++){
		Sus[i]=i;
		Jos[i]=1;
		if(!(i%2))
			Jos[i]=2;
	}
	
	for(i=3;i<=1000;i+=2){
		if(!Prime[i]){
			for(j=i ; j<=N; j+=i){
				Prime[j]=1;
				Sus[j]*=(i-1);
				Jos[j]*=i;
			}
		}
	}
	
	for(i=2;i<=N;i++){
		Sol+=2*(Sus[i]/Jos[i]);
	}
}

int main(){
	
	fin>>N;
	Sol=1;
	
	ciur();
	
	fout<<Sol<<"\n";
	
	fin.close();
	fout.close();
	return 0;
}