Cod sursa(job #1500315)

Utilizator Balescu_OvidiuBalescu Ovidiu-Gheorghe Balescu_Ovidiu Data 11 octombrie 2015 18:47:06
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;
 
long long pow(unsigned long long n, unsigned long long p){
    long long x=1;
    while(p){
        if(p&1){
            x*=n;
            p--;
        }
        n*=n;
        p>>=1;
    }
    return x;
}
int main(){
    unsigned t; unsigned long long n;
    ifstream f("ssnd.in");
    f>>t;
    ofstream g("ssnd.out");
    while(t--){
        f>>n;
        unsigned long long div=2,nr_div=1,suma=1;
        while(n>1){
			unsigned long putere=0,x=1;
			while(n%div==0){
				n/=div;
				putere++;
				x*=div;
			}
			if(putere){
				nr_div*=putere+1;
				suma*=(x*div-1)/(div-1);
			}
			if(div==2)
				div++;
			else
				div+=2;
        }
        g<<nr_div<<' '<<suma%9973<<'\n';
    }
    f.close();
    g.close();
    return 0;
}