Cod sursa(job #2353980)

Utilizator ripeanumihaiRipeanu Mihai ripeanumihai Data 24 februarie 2019 19:28:01
Problema Suma divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
unsigned long long sumdiv(unsigned long long int n)
{
    unsigned long long int s=(n+1)%9901;
    unsigned long long int i;
    for(i=2;i*i<n;i++)
    {
        if(n%i==0) s=s+i%9901;
        if(n%(n/i)==0) s=s+(n/i)%9901;
    }
    if(i*i==n) s+=i%9901;
    return s;
}
unsigned long long put0(unsigned long long int x,unsigned long long int n)
{
    long long val=1,a=x;
    while(n>0)
        if(n%2==0)
    {
        a*=a;
        n/=2;
    }
    else
    {
        val*=a;
        n--;
    }
    return val;
}
int main()
{
    unsigned long long int a,b;
    f>>a>>b;
    g<<sumdiv(put0(a,b));
    return 0;
}