Pagini recente » Cod sursa (job #2513161) | Cod sursa (job #1735436) | Cod sursa (job #411696) | Cod sursa (job #1659995) | Cod sursa (job #988296)
Cod sursa(job #988296)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long pw(long long x,long long y){
if(!y) return 1;
long long ax=pw(x,y/2);
return (y%2 ? x : 1)*ax*ax;
}
int main()
{
int t;
bool ok[1000001]={};
vector<long long> pr;
ok[1]=1;
for(int i=2;i<1000001;i++)
if(!ok[i]){
pr.push_back(i);
for(int j=2;i*j<1000001;j++)
ok[i*j]=1;
}
f>>t;
while(t--){
long long nrd=1,sd=1;
int x;
f>>x;
for(unsigned j=0;j<pr.size()&&pr[j]*pr[j]<=x&&x!=1;j++){
if(x%pr[j]==0){
long long axn=0;
while(x%pr[j]==0){
x/=pr[j];
axn++;
}
nrd*=axn+1;
sd*=(pw(pr[j],axn+1)-1)/(pr[j]-1);
sd%=9973;
}
}
if(x!=1){
nrd*=2;
sd*=(pw(x,2)-1)/(x-1);
}
g<<nrd<<" "<<sd%9973<<'\n';
}
return 0;
}