Cod sursa(job #2589736)

Utilizator MihaiutcnStancu Mihai Cristian Mihaiutcn Data 26 martie 2020 19:36:54
Problema Suma si numarul divizorilor Scor 20
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <stdio.h>
#include <stdlib.h>

const int MOD=9973;

void citire(int* a,int start,int stop)
{
    if(start>stop)
        return;
    else
    {
        scanf("%d",&a[start]);
        citire(a,start+1,stop);
    }
}

int countdivisior(int n,int i)
{
    if(i==0)
        return 0;
    else
    {
        if(n%i==0)
            return 1+ countdivisior(n,i-1);
        else
            return countdivisior(n,i-1);
    }
}

int sumadivizori(int n,int i)
{
    int result=0;
    if(i==0)
        return 0;

    else
    {
        if(n%i==0)
        {
            result=result+i;
            return result+sumadivizori(n,i-1);
        }
        else
            return sumadivizori(n,i-1);
    }
}

void printarerezultat(int* a,int n)
{
    int i;
    for(i=0; i<n; i++)
    {
        printf("%d %d\n",countdivisior(a[i],a[i]),sumadivizori(a[i],a[i]) % MOD);
    }
}

int main()
{
    freopen("ssnd.in","r",stdin);
    freopen("ssnd.out","w",stdout);
    int n;
    scanf("%d",&n);
    int* a=(int *)malloc(n*sizeof(int));
    citire(a,0,n);
    printarerezultat(a,n);
    return 0;
}