Pagini recente » Cod sursa (job #1720508) | Cod sursa (job #2826287) | Cod sursa (job #294761) | Cod sursa (job #599058) | Cod sursa (job #879680)
Cod sursa(job #879680)
#include<fstream>
#include<string.h>
#define mod 9973
#define max_n 100100
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int T,i,d,k,j;
char V[max_n];
unsigned long long nr,p1,p2,nr_d,s_d;
int Prim[max_n],Nr_d;
void ciur(){
Prim[++k]=2;
for(i=3 ; i<=1100 ; i+=2)
if(V[i]==0)
for(j=2*i ; j<=max_n ; j+=i)
V[j]=1;
for(i=3;i<=max_n;i++)
if(V[i]==0)
Prim[++k]=i;
}
int main(){
f>>T;
ciur();
while(T--){
f>>nr;
nr_d=s_d=1;
for(i=1 ;i<=k&&Prim[i]*Prim[i]<=nr; i++)
if(nr%Prim[i]==0){
Nr_d=0;p1=1;
while(nr%Prim[i]==0){
Nr_d++;
nr/=Prim[i];
p1*=Prim[i];
}
nr_d*=(Nr_d+1);p1*=Prim[i];
s_d=( (s_d%mod) * ( ((p1-1) / (Prim[i]-1))%mod ) ) % mod;
}
if(nr!=1){
nr_d*=2;
s_d=((s_d%mod)*(((nr*nr)-1)/(nr-1))%mod)%mod;
}
g<<nr_d<<" "<<s_d<<"\n";
}
return 0;
}