Cod sursa(job #1612899)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 25 februarie 2016 08:51:17
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.26 kb
#include <fstream>
#include <cmath>

using namespace std;
int n, d, s, fr[1000003], v[10000];
int main()
{
    ifstream fin("ssnd.in");
    ofstream fout("ssnd.out");
    for(i=2;i<=1000000;i++){
        if(fr[i]==0){
            for(j=i+i;j<=1000000;j+=i)
                fr[j]=1;
            v[++k]=i;
        }
    }


    nrdiv=1;
    fin>>t;
    for(i=1;i<=t;i++){
        fin>>n;
        x=n;
        t=1;
        while(v[t]<=sqrt(n)){
            nr=0;
            while(x%v[t]==0){
                nr++;
                x /= v[t];
            }
            nrdiv *= (nr+1);
            if(nr!=0){
                a=v[t];
                b=nr+1;
                p=1;
                while(b!=0){
                    if(b%2==1)
                        p *= a%9973;
                    a *= a%9973;
                    b /= 2;
                }
                p %= 9973;
                if(p>=1)
                    rest=p-1;
                else
                    rest=9972;
                b=v[t]-1;
                 while(b!=0){
                    if(b%2==1)
                        im=im*n%p;
                    n=n*n%p;
                    b=b/2;
                }
            }
        }

    }
    return 0;
}