Cod sursa(job #1828777)

Utilizator georgemihaiGeorge Mihai georgemihai Data 13 decembrie 2016 21:08:35
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>
#include<iostream>
#include<cmath>
using namespace std;
int v[1000001];
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int main()
{
   int n,k=0,m,nr=0;
   in>>n;
   k++;
   v[k]=1;
   for(int i=2;i*i<=1000000;i++)
     if(v[i]==0)
    {
    k++;
    v[k]=i;
    for(int j=i+i;j<=1000000;j=j+i)
      v[j]=1;
     }
     for(int i=2;i<=1000000;i++)
         if(v[i]==0)
     {
         k++;
         v[k]=i;
     }
     for(int i=1;i<=n;i++)
     {
         int s=0;
         nr=0;
         in>>m;
         for(int i=1;v[i]*v[i]<=m;i++)
         {
             if(m%v[i]==0)
             {

                s=s+v[i]+m/v[i];
                nr=nr+2;
             }
         }
         if(sqrt(m)==int(sqrt(m)))
            s=s-sqrt(m),nr--;
         out<<nr<<" "<<s;
         out<<'\n';
     }
}