Pagini recente » Cod sursa (job #2259248) | Cod sursa (job #2855139) | Cod sursa (job #3168030) | Cod sursa (job #1124609) | Cod sursa (job #1626778)
#include <fstream>
using namespace std;
long long n, nr, nr1, tot[100002], marked[100002];
int main()
{
ifstream in("sum.in");
ofstream out("sum.out");
in>>n;
for(int i = 2; i <= 100000; ++i){
if(!marked[i]){
for(int j = i * 2; j <= 100000; j += i){
marked[j] = i;
}
}
}
tot[1] = 0;
for(int i = 2; i <= 100000; ++i){
if(!marked[i])
tot[i] = i - 1;
else {
nr = i;
while(!(nr%marked[i])){
nr /= marked[i];
}
nr1 = i / nr;
if(nr != 1){
tot[i] = tot[nr] * tot[nr1];
}
else tot[i] = i * (marked[i] - 1) / marked[i];
}
}
for(int i = 1; i <= n; ++i){
in>>nr;
out<<tot[nr] * nr * 2<<"\n";
}
in.close();
out.close();
return 0;
}