shipu_a

Div 2 Problem E

Jan 14th, 2013
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include<cstdio>
  2. bool isprime(int n)
  3. {
  4.  
  5.     int i;
  6.     if(n==1||n==0) return 0;
  7.     if(n==2) return 1;
  8.     for(i=2;i*i<=n;i++)
  9.     {
  10.         if(n%i==0) return 0;
  11.     }
  12.     return 1;
  13. }
  14. int main()
  15. {
  16.     int test,t=0,i,a,b,n,p,a1,b1;
  17.     scanf("%d",&test);
  18.     while(test--)
  19.     {
  20.         scanf("%d",&n);
  21.         if(n==1)
  22.         {
  23.             printf("Case %d# %d\n",++t,2);
  24.             continue;
  25.         }
  26.         if(isprime(n)==1)
  27.         {
  28.             printf("Case %d# %d\n",++t,n);
  29.             continue;
  30.         }
  31.         p=n;
  32.         a=0;
  33.         while(isprime(n)==0)
  34.         {
  35.             a++;
  36.             n++;
  37.         }
  38.         b=0;
  39.         n=p;
  40.         while(isprime(n)==0)
  41.         {
  42.             b++;
  43.             n--;
  44.             if(n==0) break;
  45.         }
  46.         if(a==b)
  47.         {
  48.             printf("Case %d# %d\n",++t,p-a);
  49.             continue;
  50.         }
  51.         if(a<b)
  52.             printf("Case %d# %d\n",++t,p+a);
  53.         else
  54.             printf("Case %d# %d\n",++t,p-b);
  55.     }
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment