Pagini recente » Cod sursa (job #1258806) | Cod sursa (job #2444040) | Cod sursa (job #103860) | Cod sursa (job #2124456) | Cod sursa (job #1448698)
#include <fstream>
#include <bitset>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long i,j,m,t,exp,suma,n,nr,poz;
int p[100000];
bitset <1000002> w;
long long putere(long long x,long long y)
{
long long put=1;
while(y) {if(y&1) put*=x,y--; x*=x; y/=2;}
return put-1;
}
int main()
{
f>>t;
p[1]=2; m=1;
for(i=3;i<=1000000;i+=2)
if(!w[i])
{ p[++m]=i;
for(j=i*i;j<=1000000;j+=(i<<1)) w[j]=1;}
while(t--)
{
f>>n; poz=1; suma=1; nr=1;
while(n>1&&poz<m+1) {exp=1; while(n%p[poz]==0) {exp++; n/=p[poz];} if(exp>1) {nr*=exp; suma=(suma*(putere(p[poz],exp)/(p[poz]-1)))%9973;} poz++; }
if(n>1) { nr*=2; suma=suma*(n+1)%9973;}
g<<nr<<" "<<suma<<'\n';
}
g.close();
return 0;
}