Cod sursa(job #792112)

Utilizator usermeBogdan Cretu userme Data 26 septembrie 2012 15:41:49
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include<fstream>
using namespace std;
bool ciur[1000001];
int prim[300000];
void ciurv(){
    int i,j;
    for(j=2;j<=1000000;j+=2)
        ciur[j]=1;
    for(i=3;i<=1000;i+=2){
        if(!ciur[i])
            for(j=i*i;j<=1000000;j+=i)
                ciur[j]=1;
    }
}
int main () {
    ifstream f("ssnd.in");
    ofstream h("ssnd.out");
    int n,t,i,j=0,d,e,nr=1,s=1,pn;
    ciurv();
    for(i=1;i<=1000000;i++){
        if(!ciur[i])prim[++j]=i;
    }
    f>>t;
    for(i=1;i<=t;i++){
        s=1;
        nr=1;
        f>>n;
        for(d=2;d*d<=n;d++)
            if(n%d==0){
                e=0;
                pn=1;
                while(n%d==0){
                    e++;
                    pn*=d;
                    n/=d;
                }
                nr=nr*(e+1);
                s=s*(pn*d-1)/(d-1)%9973;
            }
        if(n!=1){
            nr=nr*2;
            s=s*(n+1)%9973;
        }
        h<<nr<<" "<<s<<"\n";
    }
    return 0;
}