Cod sursa(job #384911)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 21 ianuarie 2010 19:24:48
Problema Mins Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
long x,y,min,max,i,j,f,k;
long long nr;
long a[1000005][11];
int main()
{
 freopen("mins.in","r",stdin);
 freopen("mins.out","w",stdout);
 scanf("%ld%ld",&x,&y);
 --x;--y;
 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)
    for(j=1;j<i;++j)
       if(j==1)++nr;
       else
       {f=1;
        if(a[i][0]>a[j][0])
        {for(k=1;k<=a[j][0];++k)
           if(i%a[j][k]==0){f=0;break;}}
        else
        for(k=1;k<=a[i][0];++k)
           if(j%a[i][k]==0){f=0;break;}
        nr+=f;}
 nr*=2;
 for(i=min+1;i<=max;++i)
    for(j=1;j<=min;++j)
       if(j==1)++nr;
       else
       {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;
}