Pagini recente » Cod sursa (job #1433262) | Cod sursa (job #1727940) | Cod sursa (job #1520928) | Cod sursa (job #969265) | Cod sursa (job #756752)
Cod sursa(job #756752)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f("sum.in");
ofstream g("sum.out");
int n=0, i, j, t, phi[100005], x[100005];
//long long s;
f>>t;
for(i=1; i<=t; i++) {
f>>x[i];
if(x[i]>n) n=x[i]; //n = max(x[i])
}
n*=2; //n = 2*max(x[i]) -> pana unde calculez functia phi()
n++;
for(i=1; i<=n; i++) phi[i] = i-1; //indicatorul lui euler (phi[i] = nr de numere prime cu i, mai mici decat i)
for(i=2; i<=n; i++) { //initializez cu i-1, si din toti multiplii lui i scad phi[i]
for(j=2*i; j<=n; j+=i) {
phi[j] -= phi[i];
}
}
for(i=1; i<=t; i++) {
g<<1LL*phi[x[i]]*2*x[i]<<"\n"; //ceva formula dedusa
}
f.close();
g.close();
return 0;
}