Advertisement
Guest User

EX6

a guest
Oct 27th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int prim(int nr)
  4. {
  5.     int i, ok = 1;
  6.  
  7.     for(i = 2; i <= nr/2; i++)
  8.         if(nr % i == 0)
  9.             ok = 0;
  10.  
  11.     if(ok == 1)
  12.         return 1;
  13.     else
  14.         return 0;
  15. }
  16.  
  17. int cautareprim(int nr, int op)
  18. {
  19.     int i = nr, nrprim = 1;
  20.  
  21.     for(;;)
  22.     {
  23.         if(i >= 1)
  24.         {
  25.             if(prim(i) == 0 && op == 1)
  26.                 i++;
  27.             else if(prim(i) == 0 && op == 0)
  28.                 i--;
  29.             else
  30.                 break;
  31.         }
  32.         else
  33.             break;
  34.     }
  35.    
  36.     return i;
  37. }
  38.  
  39. int main()
  40. {
  41.     int i, nr, dist, prs, prd;
  42.  
  43.     scanf("%d", &nr);
  44.  
  45.     while(nr >= 0)
  46.     {
  47.         if(prim(nr))
  48.             scanf("%d", &nr);
  49.         else
  50.         {
  51.             prs = cautareprim(nr, 0);
  52.             prd = cautareprim(nr, 1);
  53.             if(prs == 1 && prd != 1)
  54.                 printf("%d\n", prd);
  55.             else if(prs != 1 && prd == 1)
  56.                 printf("%d\n", prs);
  57.             else
  58.             {
  59.                 if((nr - prs) == (prd - nr))
  60.                     printf("%d %d\n", prs, prd);
  61.                 else if((nr - prs) > (prd - nr))
  62.                     printf("%d\n", prd);
  63.                 else if((nr - prs) < (prd - nr))
  64.                     printf("%d\n", prs);
  65.             }
  66.  
  67.             scanf("%d", &nr);
  68.         }
  69.     }
  70.                
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement