Cod sursa(job #1016772)

Utilizator jul123Iulia Duta jul123 Data 26 octombrie 2013 18:52:14
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    ifstream f("ssnd.in");
    ofstream g("ssnd.out");
     bool ciur[1000001];
     int n, r, j, k, t, e, a, b ;
    long long i, v[80000], x, y, nr, p, s;
    for(i=2; i<=1000000; i++)
             ciur[i]=true;
    r=1000;
    for(p=2; p<=r; p++){
             if(ciur[p]==1)
             for(j=p*p; j<=1000000; j+=p)
                      ciur[j]=false;
    }
    k=0;
    for(i=2;i<=1000000;i++)
        if(ciur[i]==true)
            v[k++]=i;
    f>>n;
    for(i=0;i<n;i++){
        f>>x;
        t=0;
        nr=1, s=1;
        y=x;
        while(v[t]<=y && t<k ){
            if(x%v[t]==0 && x){
                e=0;
                p=v[t];
                while(x%v[t]==0 && x){
                    x/=v[t];
                    e++;
                    p=p*v[t];
                }

        nr*=(e+1);
        s*=(p-1);
        s/=(v[t]-1);
            }
            t++;
        }
        if(x>1){
            nr*=2;
            s*=(x+1);

        }
        g<<nr<<" "<<s%9973<<"\n";
}

}