Pagini recente » Cod sursa (job #1780288) | Cod sursa (job #1269888) | Cod sursa (job #2048786) | Cod sursa (job #929612) | Cod sursa (job #603497)
Cod sursa(job #603497)
#include <fstream>
#include <iostream>
//#define DEBUG
#define MOD 9973
using namespace std;
ifstream fin ("ssnd.in" );
ofstream fout("ssnd.out");
bool erat[1000005];
int prime[1000000], nrp;
int main(){
for(int i=2;i<=1000; ++i)
if(erat[i]==0)
for(int j=i+i ; j<=1000000 ; j += i)
erat[j]=1;
nrp= 0;
for(int i=2;i<=1000000;++i)
if(erat[i]==0)
prime[++nrp] = i;
int n, s, nr;
long long int x;
fin >> n ;
for( ; n ; --n ){
fin >> x;
#ifdef DEBUG
cout<<"x = " << x << endl;
#endif
s = nr = 1;
int p , d = 1, termen ;
while ( x > 1 ){
p = 1; termen = 1;
int stermen = 1;
while ( x % prime[d] ==0 ){
p ++, stermen = (stermen + ( termen = (1LL * termen * prime[d] ) % MOD ) ) % MOD, x /= prime[d];
}
nr = p * nr % MOD;
s = (1LL * s * stermen) % MOD;
#ifdef DEBUG
//cout << nr << " " << s << endl;
#endif
d ++;
if( x > 1 && 1LL * prime[d]*prime[d] > x){
nr = (nr * 2) % MOD;
s = 1LL * s * (1+x) % MOD;
#ifdef DEBUG
//cout << x<< " " << nr << " " << s << endl;
#endif
x = 1;
}
}
fout << nr << " " << s<< "\n";
}
}