Pagini recente » Cod sursa (job #139112) | Cod sursa (job #806957) | Cod sursa (job #3213034) | Cod sursa (job #2056264) | Cod sursa (job #1943500)
#include <iostream>
#include <fstream>
#include <bitset>
#include <math.h>
using namespace std;
bitset <10000010> ciur;
void ciurf (int n)
{
ciur.reset();
int i, j;
ciur [1] = 1;
for(i=2;i<=2e6;i++)
if(ciur[i]==0)
for(j=i+i;j<=2e6;j+=i)
ciur[j]=1;
}
int main()
{
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
int t;
long long int n, nr, n2, sum=0, partsum, partprod;
int i, putere;
ciurf(2e6);
in>>t;
while(t--)
{
in>>n;
n2=n;
nr = 1;
sum=1;
for(i=2;i*i<=n2;++i)
if(!ciur[i] && n%i==0)
{
putere = 0;
partsum = 1; partprod = 1;
while(n%i==0)
{
++putere;
partprod*=i;
partprod%=9973;
partsum +=partprod;
if(partsum > 9973)
partsum -= 9973;
n/=i;
}
sum *= partsum;
sum %= 9973;
nr *=(1+putere);
}
//testam daca e un nr prim f mare
if(n>1)
{
nr*=2;
sum=(sum * n+1) % 9973;
}
out<<nr<<" "<<sum<<"\n";
}
}