Cod sursa(job #384922)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 21 ianuarie 2010 19:54:22
Problema Mins Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
long x,y,min,max,i,j,f,k,nrr;
long long nr;
long a[1000005][8];
int main()
{
 freopen("mins.in","r",stdin);
 freopen("mins.out","w",stdout);
 scanf("%ld%ld",&x,&y);
 --x;--y;
 a[1][++a[1][0]]=1;
 if(x<y)min=x,max=y;
   else min=y,max=x;
 for(i=2;i<=min;++i)
    if(a[i][0]==0)
      for(j=i;j<=min;j+=i)
         a[j][++a[j][0]]=i;
 nr=0;
 for(i=2;i<=min;++i)
    {nrr=i;
     for(j=1;j<=a[i][0];++j)
        nrr=(nrr/a[i][j])*(a[i][j]-1);
     nr+=nrr;}
 nr*=2;
 nr=nr+max-min;
 for(i=min+1;i<=max;++i)
    for(j=2;j<=min;++j)
       {f=1;
        for(k=1;k<=a[j][0];++k)
           if(i%a[j][k]==0){f=0;break;}
        nr+=f;}
 ++nr;
 printf("%lld\n",nr);
 return 0;
}