Pagini recente » Cod sursa (job #2002338) | Monitorul de evaluare | Cod sursa (job #3203090) | Istoria paginii runda/graf2/clasament | Cod sursa (job #963566)
Cod sursa(job #963566)
#include <fstream>
#include <bitset>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bitset<1000002> ciur;
int prime[100000];
long long putere( long long n, long long p) {
long long k=1;
while(p!=0) {
if(p&1) k=(k*n)%9973;
n=(n*n)%9973;
p/=2;
}
return k;
}
int main()
{
long long t, n, i, j, r=0, nd, sd, d, p, n2;
f>>t;
for(i=2;i<=1000000;i++) if(!(ciur[i])) {prime[++r]=i; for(j=2*i;j<=1000000;j+=i) ciur[j]=1;}
for(i=1;i<=t;i++) {
f>>n; n2=n;
j=1; nd=sd=1;
while(prime[j]*prime[j]<=n2) {
p=0; d=prime[j];
while(!(n%d)) {n/=d; p++;}
nd*=(p+1);
sd*=(putere(d, p+1) - 1)/(d-1);
j++;
}
if(n>1) {nd=2; sd=n+1;}
g<<nd<<" "<<sd<<'\n';
}
f.close();
g.close();
return 0;
}