Cod sursa(job #2032553)

Utilizator mozsaattilamozsaattila mozsaattila Data 5 octombrie 2017 12:41:49
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

int nullazo(int s,int p[0])
{
    int i;
    for(i=2;i<=s;i++){
        p[i]=0;
    }
}

int main()
{
   int i,n,j,t[1000]={0},s,szama,p[1000]={0},osszeg;
   ifstream f("ssnd.in");
   ofstream g("ssnd.out");
   f>>n;
   for(i=0;i<n;i++)f>>t[i];
   for(i=0;i<n;i++){
    szama=1;
    osszeg=1;
    s=sqrt(t[i]);
    for(j=2;j<=s+1 && t[i]>1;){
        if(t[i]%j==0){p[j]++;t[i]=t[i]/j;}
        else j++;
    }
    for(j=2;j<=s+1;j++){
        if(p[j]!=0){
            szama=szama*(p[j]+1);
            osszeg=osszeg*((pow(j,p[j]+1)-1)/(j-1));
        }
    }
    if(t[i]>s)g<<2<<" ";
        else   g<<szama<<" ";
    if(t[i]>s)g<<t[i]+1<<endl;
        else g<<osszeg<<endl;
    nullazo(s,p);
   }
}