Pagini recente » Cod sursa (job #1559861) | Cod sursa (job #2479008) | Cod sursa (job #3258842) | Cod sursa (job #2477278) | Cod sursa (job #876916)
Cod sursa(job #876916)
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
struct chestie
{
int f,exp;
};
chestie power[100];
int n,i,p,pr,e,ok[1000001],a[1000001],nr;
long long x,l,sum,j;
void ciur()
{
i=3;
while(i<=1000)
{
if(!ok[i])
for(j=(long long)i*i;j<=1000000;j+=i)
ok[j]=1;
i+=2;
}
a[++nr]=2;
for(i=3;i<=1000000;i+=2)
if(!ok[i])
a[++nr]=i;
}
int main()
{
ciur();
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
p=0;
for(j=1;(long long)a[j]*a[j]<=x;j++)
if(x%a[j]==0)
{
e=0;
while(x%a[j]==0)
{
x/=a[j];
e++;
}
p++;
power[p].f=a[j];
power[p].exp=e;
if(x==1)
break;
}
if(x!=1)
{
p++;
power[p].f=x;
power[p].exp=1;
}
pr=1;
sum=1;
for(j=1;j<=p;j++)
{
pr=pr*(power[j].exp+1);
l=1;
for(e=1;e<=power[j].exp+1;e++)
l=(long long)l*power[j].f;
sum=((long long)sum*(l-1)/(power[j].f-1))%9973;
}
g<<pr<<" "<<sum;
g<<"\n";
}
return 0;
}