brsjak

Zamena - SP Lab 8

Nov 1st, 2016
774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.49 KB | None | 0 0
  1. /*Замена Problem 1 (2 / 13)
  2. Во низа од N природни броеви (N и низата се читаат од СВ) да си ги заменат позициите соседните взаемно прости броеви (два броја се взаемно прости ако немаат заеднички делители). На ист елемент од низата може најмногу еднаш да му се изврши замена. Да се испечати на СИ изменетата низа.
  3.  
  4. Замената на два броја да се реализира во посебна функција.*/
  5.  
  6. #include <stdio.h>
  7. #define MAX 100
  8.  
  9. // smena
  10. void smena(int *x, int*y)
  11. {
  12.     int temp;
  13.     temp=*x;
  14.     *x=*y;
  15.     *y=temp;
  16. }
  17. int prost (int a, int b,int c)
  18. {
  19.     if(a%c==0&&b%c==0)
  20.     return 0;
  21.     if(a==c || b==c)
  22.         return 1;
  23.     return prost(a,b,c+1);
  24.  
  25. }
  26.  
  27.  
  28. int main() {
  29.     int a[MAX];
  30.     int n; //broj na elementi vo nizata
  31.     scanf("%d", &n);
  32.     int i;
  33.     for(i = 0; i < n; i++) {
  34.         scanf("%d", &a[i]);
  35.     }
  36.    
  37.     // вашиот код почнува овде
  38.     i=1;
  39.     int tmp;
  40.     while(i<n)
  41.         {
  42.             if(prost(a[i-1], a[i],2))
  43.             {
  44.                 smena(&a[i-1], &a[i]);
  45.                
  46.            
  47.   i+=1;}
  48.            
  49.                 i++;   
  50.         }
  51.        
  52.    
  53.     // завршува овде
  54.    
  55.     for(i = 0; i < n; i++) {
  56.         printf("%d ", a[i]);
  57.     }
  58.  
  59.     return 0;
  60. }
Add Comment
Please, Sign In to add comment