Cod sursa(job #1820688)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 2 decembrie 2016 01:29:36
Problema Suma divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
int A,B;
long long sum=0,nr;
bool v[10000000000000];
long long pow1(int x,int y)
{
    long long p=1;
    while(y>0)
    {
        if(y%2!=0)
        {
            p=p*x;
        }
        x=x*x;
        y=y/2;
    }
    return p;
}
int main()
{
    f>>A>>B;
    nr=pow1(A,B);
    for(int i=2;i<=nr;i++)
    {
        if(v[i]==0 && nr%i==0)
        {
            sum=sum+i;
            for(int j=i+i;j<=nr;j=j+i)
            {
                if(v[j]==0)
                {
                    v[j]=1;
                    if(nr%j==0)
                    {
                        sum=sum+j;
                    }
                }
            }
        }
    }
    g<<(sum+1)%MOD;
}