Cod sursa(job #27569)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 6 martie 2007 15:28:27
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<stdio.h>
long int x,n,s,i,j,max,k,prim[300],y[300];
long int prime(long int n)  //generz numerele prime pana la n
{   int i,k=5,a;
    prim[1]=1; prim[2]=2; prim[3]=3; prim[4]=5; prim[5]=7;
    for(a=11;a<=n;a+=2)
    for(i=1;i<k;i++)
        if(a%prim[i])prim[++k]=a;
    prim[0]=k;
    return 0;
}
int main()
{   FILE *f,*g;
    f=fopen("sum.in","r");
    fscanf(f,"%ld",&n);
    fscanf(f,"%ld",&max);
    for(i=1;i<n;i++)
       { fscanf(f,"%ld",&x);
         if(x>max) max=x;
         }
    fclose(f);
    prime(max);
    f=fopen("sum.in","r");
    g=fopen("sum.out","w");
    fscanf(f,"ld",&n);
    for(i=1;i<=n;i++)
       { fscanf(f,"%ld",&x);
         k=1;y[1]=1;
         for(i=2;x>prim[i];i++)
            if(x%prim[i]) y[++k]=prim[i];
         for(i=1;i<=k;i++)
         for(j=1;j<=i;j++)
             if(y[i]*y[j]<x) s+=y[i]*y[j];
                else break;
         fprintf(g,"%ld\n",s);
       }
    fcloseall();
    return 0;
}