Pagini recente » Cod sursa (job #1913209) | Cod sursa (job #2883423) | Cod sursa (job #3155577) | Borderou de evaluare (job #532078) | Cod sursa (job #568398)
Cod sursa(job #568398)
#include<fstream>
using namespace std;
int main()
{unsigned long long n[1000], j, s, c, p, nrd;
int t, i, OK, r;
ifstream f("ssnd.in");
ofstream h("ssnd.out");
f>>t;
for (i=1; i<=t; i++)
f>>n[i];
for (i=1; i<=t; i++)
{r=n[i];
nrd=1;
s=1;
if (r%2==0)
{c=0;
do
{r=r/2;
c=c+1;}
while (r%2==0);
nrd=nrd*(c+1);
s=s*(pow((double)(2),(double)(c+1))-1)/(2-1);
}
j=3;
do
{
p=3;
OK=1;
while ((p<=j/2)&&(OK=1))
{if (j%p==0)
OK=0;
else
p=p+2;}
if (OK==1)
if (n[i]%j==0)
{c=0;
do
{r=r/j;
c=c+1;}
while (r%j==0);
nrd=nrd*(c+1);
s=s*(pow((double)(j),(double)(c+1))-1)/(j-1);}
j=j+2;
}
while (j<=n[i]/2);
if (nrd==1)
{nrd=2;
s=n[i]+1;}
h<<nrd<<" "<<s<<endl;
}
f.close();
h.close();
return 0;
}