Pagini recente » Cod sursa (job #1625843) | Cod sursa (job #847733) | Cod sursa (job #1348084) | Cod sursa (job #234066) | Cod sursa (job #963571)
Cod sursa(job #963571)
#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 && prime[j]) {
p=0; d=prime[j];
while(!(n%d)) {n/=d; p++;}
if(p) {
nd*=(p+1);
sd*=(putere(d, p+1) - 1)/(d-1);
sd%=9973;
}
j++;
}
if(n>1) {nd=2; sd=n+1;}
g<<nd<<" "<<sd<<'\n';
}
f.close();
g.close();
return 0;
}