Cod sursa(job #508378)

Utilizator lookyLucaci Alexandru Adrian looky Data 8 decembrie 2010 01:58:56
Problema Suma si numarul divizorilor Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>

int N;
unsigned long t;
unsigned long divizori;
unsigned long sum;
FILE *in, *out;

void afiseaza(unsigned long t, unsigned long div, unsigned long sum)
{
    fprintf(out,"%lu %d\n",div,sum);
}

void fetch(unsigned long t, int i, int k)
{
    int max = t/2;
    divizori = 2;
    sum = 0;
    sum += 1;
    sum += t;
    for ( ; i <= max ; i += k )
    {
        if (t%i == 0)
            {
                divizori += 1;
                sum += i;
            }
    }
    afiseaza(t,divizori,sum%9973);
}

int main()
{
    in = fopen("ssnd.in","r");
    out = fopen("ssnd.out","w");
    fscanf(in,"%d",&N);
    int i;
    for (i=0; i<N; i++)
    {
        fscanf(in,"%lu",&t);
        if (t%2 == 0)
            fetch(t,2,1);
        else
            fetch(t,3,2);
    }
    return 0;
    fclose(in);
    fclose(out);
}