Pagini recente » Cod sursa (job #351904) | Cod sursa (job #2498214) | Cod sursa (job #259004) | Cod sursa (job #850225) | Cod sursa (job #216465)
Cod sursa(job #216465)
#include <fstream.h>
#include <iomanip.h>
#include <math.h>
long limit=100000;
long v[100001],a[100001],b[100001],p[100001],i,j,n;
long long x;
fstream fin("sum.in",ios::in),fout("sum.out",ios::out);
using namespace std;
int main(){
for(i=2;i<=sqrt((float)limit);i++)
if (p[i]==0)
for (j=1;j<=limit/i;j++) p[i*j]=i;
for (i=2;i<=limit;i++){
if (p[i]==0) p[i]=i;
b[i]=i/p[i]; a[i]=p[i];
while (b[i]%p[i]==0){b[i]/=p[i]; a[i]*=p[i];}
if(b[i]==1) v[i]=i-i/p[i];
else v[i]=v[a[i]]*v[b[i]];
}
fin>>n;
for (i=1;i<=n;i++){
fin>>x;
fout<<2*x*v[x]<<"\n";
}
fin.close(); fout.close();
}