Cod sursa(job #1106307)

Utilizator YusukeFMI Mares Medar Razvan Yusuke Data 12 februarie 2014 18:27:47
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,i,k=0,d[1000000];
long long n;
bool viz[1000000];
void ciur(int N)
{
    int i, j;
    viz[1]=true;
    for (i=2; i<=N; i++)
        if (viz[i] == false)
        {
            k++;
            d[k] = i;
            for (j=2; j*i<=N; j++)
                viz[i*j] = true;
        }
}
int main()
{
    int t, i, nr , s =0, e,j;
    long long n;

    ciur(1000000);

    f>>t;
    for(i=1;i<=t;i++)
    {
       f>>n; nr = 1; s = 0;
       j=1;
       while(n>1 && j<=k)
       {
           e=0;
           while(n%d[j]==0)
           {
               e++;
               n=n/d[j];
           }
           if (e>0)
           {
               nr=nr*(e+1);
               s=(s+((int) (pow(d[j], e+1)-1) /(d[j]-1))) % 9973;
           }
           j++;
       }

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