Cod sursa(job #997580)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 14 septembrie 2013 16:09:25
Problema Sum Scor 45
Compilator c Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>
#include <stdlib.h>
char v[200000];
int main()
{   FILE*fi,*fout;
    int nr1,j1,n,i,r;
    long long nr,s,j;
    fi=fopen("sum.in" ,"r");
    fout=fopen("sum.out" ,"w");
    fscanf(fi,"%d\n" ,&n);
     for(i=2;i*i<=200000;i++)
            if(v[i]==0)
             for(j=i*i;j<=200000;j=j+i)
              v[j]=1;
    for(i=0;i<n;i++)
    {
       fscanf(fi,"%lld\n" ,&nr);
       if(nr!=2&&(v[nr]==0||nr==1))
        fprintf(fout,"%d\n" ,((nr*2-1)*nr*2)/2-nr);
       else
       {
           s=1;
           for(j=2;j<2*nr;j++)
           {
               j1=j;
               nr1=nr;
               if(j>nr&&v[j]==0)
                 s=s+j;
               else
               {
                   while(nr1>0)
                   {
                       r=j1%nr1;
                       j1=nr1;
                       nr1=r;
                   }
                   if(j1==1)
                    s=s+j;
               }
           }
           fprintf(fout,"%lld\n" ,s);
       }
    }
    fclose(fi);
    fclose(fout);
    return 0;
}