Pagini recente » Cod sursa (job #1771288) | Cod sursa (job #1075466) | Cod sursa (job #2269891) | Cod sursa (job #3000550) | Cod sursa (job #1001253)
#include <fstream>
#include <vector>
int main(){
std::ifstream fin("fractii.in");
std::ofstream fout("fractii.out");
unsigned n;
fin>>n;
std::vector<unsigned> phi(n+1); //used like Erastothenes's Sieve but contains the totient
for(unsigned i=1;i<=n;++i) phi[i]=i;
unsigned long long sum=0;
for(unsigned i=2;i<=n;++i){
if(phi[i]==i){
for(unsigned j=i;j<=n;j+=i){
phi[j]=phi[j]/i*(i-1);
}
}
sum+=phi[i]; //add phi[i] to the sum of totients
}
fout<<2*sum+1<<'\n';
}