Pagini recente » Cod sursa (job #200322) | Cod sursa (job #2309213) | Cod sursa (job #1383475) | Cod sursa (job #1937097) | Cod sursa (job #1427049)
#include <fstream>
#include <vector>
#define MOD 9973
#define MAX_SQRT 1000000
using namespace std;
vector<long long> primes;
long long is_prime_table[MAX_SQRT];
void buildPrimes()
{
for(long long i=3; i*i<MAX_SQRT; i+=2)
if(is_prime_table[i]==0)
for(long long j=i*i; j<MAX_SQRT; j+=2*i)
is_prime_table[j]=1;
primes.push_back(2);
for(long long i=3; i<MAX_SQRT; i+=2)
if(is_prime_table[i]==0) primes.push_back(i);
}
int main()
{
long long t, n, s, d, j, c1, c2, c;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
in>>t;
buildPrimes();
for(long long i=0; i<t; ++i)
{
in>>n;
s=1; d=1; j=0;
while(primes[j]*primes[j]<=n)
{
if(n%primes[j]==0)
{
c1=1; c2=1;
c=1;
while(n%primes[j]==0)
{
++c1;
c*=primes[j];
c2+=c;
n/=primes[j];
}
d*=c1;
s=s*c2%MOD;
}
++j;
}
if(n!=1)
{
d*=2;
s=s*(n+1)%MOD;
}
out<<d<<' '<<s<<endl;
}
return 0;
}