Cod sursa(job #1915660)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 8 martie 2017 21:57:09
Problema Suma si numarul divizorilor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const int N=1000001,mod=9973;
int v[N];
bool c[N];
void desc(long long n)
{
int i;
  long long p,q,nr=1,s=1;
  for(i=1;v[i]*v[i]<=n;i++)
   if(n%v[i]==0)
     {
         for(p=1,q=v[i];n%v[i]==0;n/=v[i],p++,q*=v[i]);
         s=s*(q-1)/(v[i]-1)%mod;
         nr*=p;
     }
     if(n!=1)
     {
         s=s*(n+1)%mod;
         nr*=2;
     }
     g<<nr<<" "<<s<<'\n';
}
void ciur()
{int i,j;
c[0]=c[1]=true;
  for(i=1;i*i<N;i++)
    if(!c[i])
      for(j=i*i;j<N;j=j+i)
      c[j]=true;
   for(i=2;i<N;i++)
   if(!c[i])
      v[++v[0]]=i;
}
int main()
{
ciur();
  long long t,n;
  f>>t;
  while(t--)
  {
      f>>n;
      desc(n);
  }
return 0;
}