Cod sursa(job #862380)

Utilizator alex45meOlaru Alex alex45me Data 22 ianuarie 2013 17:37:40
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

FILE *f=fopen("ssnd.in","r");
FILE *g=fopen("ssnd.out","w");

int t,k,i,j;
long long x,xx,s,d,p,y;

int main()
{
    fscanf(f,"%d",&t);
    for (j=1;j<=t;j++){
        d=1;
        s=1;
         fscanf(f,"%lld",&x);
         xx=x;
         y=(long long)sqrt(x);
         for (i=2;i<=y;i++){
              k=0;p=1;
              while (x % i==0)
                 {x=x/i;
                  p=p*i;
                  k++;
                 }
              d=d*(k+1);
              s=(s*((p*i-1)/(i-1)))%9973;
             if (x!=1 && i==y ) {d=d*2; s=(s*((x*x-1)/(x-1)))%9973;}

         }
              if (d==1) fprintf(g,"2 %lld\n",x+1); else
        fprintf(g,"%lld %lld\n",d,s);
    }
    return 0;
}