Lang:GCC
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <stdlib.h>#include <string.h>#define maxn 5000001int euler[maxn];void euler_init(){int i,j;euler[1]=1;for(i=2;i<maxn;i++)euler[i]=i;for(i=2;i<maxn;i++)if(euler[i]==i)for(j=i;j<maxn;j+=i)euler[j]=euler[j]/i*(i-1);}int main(){euler_init();long long x,y,k,n,t;while(~scanf("%lld%lld",&x,&y)){k=x;n=euler[x];for(t=x;t<=y;t++){if(n>euler[t]){n=euler[t];k=t;}}printf("%lld\n",k);}