Cod sursa(job #862094)

Utilizator alex45meOlaru Alex alex45me Data 22 ianuarie 2013 10:45:58
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 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,s,d,p,y;

int main()
{
    fscanf(f,"%d",&t);
    for (j=1;j<=t;j++){
        d=1;
        s=1;
         fscanf(f,"%lld",&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));
              }
              if (d==1) fprintf(g,"2 %lld\n",x+1); else
        fprintf(g,"%lld %lld\n",d,s);
    }
    return 0;
}