Pagini recente » Cod sursa (job #1694257) | Cod sursa (job #532744) | Cod sursa (job #716259) | Cod sursa (job #1961794) | Cod sursa (job #1374931)
#include <fstream>
#include <cmath>
using namespace std;
unsigned long long nrdivizori(unsigned long long a)
{
unsigned long long d,s=1,k=0;
while(a%2==0)
{
a/=2;
k+=1;
}
s*=(k+1);
d=3;
while(a>1)
{
k=0;
while(a%d==0)
{
a/=d;
k+=1;
}
s*=(k+1);
}
return s;
}
unsigned long long suma(int a)
{
unsigned long long d=2,s=1+a,k;
k=sqrt(a);
while(d<=k)
{
if(a%d==0)
{
s+=d;
s+=a/d;
}
d+=1;
}
return s;
}
int main()
{
ifstream f("ssnd.in");
ofstream g("ssnd.out");
unsigned long long n,a,i;
f>>n;
for(i=1;i<=n;i++)
{
f>>a;
g<<nrdivizori(a)<<" ";
g<<suma(a)<<'\n';
}
f.close();
g.close();
return 0;
}