Cod sursa(job #455956)

Utilizator emanuela.hallerHaller Emanuela emanuela.haller Data 14 mai 2010 17:18:06
Problema Suma si numarul divizorilor Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.96 kb
#include<stdio.h>

int main()
  {
   freopen("ssnd.in","r",stdin);
   freopen("ssnd.out","w",stdout);
   long i,j,nr=0,v[1000005];
   char prim[1000005];
   
   for(i=2;i<=1000000;i++)
      prim[i]=1;
      
   for(i=2;i<=1000000;i++)
     if (prim[i])
       {
        nr++;
        v[nr]=i;
        for(j=i+i;j<=1000000;j+=i)
           prim[j]=0;
       }   
   
   int t;
   long n,nd,s,c,p;
   
   scanf("%i",&t);
   
   for(;t;--t)
      {
        scanf("%li",&n);       
        nd=1; s=1;
        for(i=1;v[i]*v[i]<=n;i++)
           {
            c=0;p=1;
            while(n%v[i]==0)
              {
               c++;
               n=n/v[i];
               p=p*v[i];
              } 
            if (c!=0)
              {
               nd=nd*(c+1);
               p=p*v[i];
               s=s*(p-1)/(v[i]-1);
              }  
           }
        printf("%li %li\n",nd,s%9973);   
        
      }
   return 0;
   
  }