Advertisement
cunha1

Untitled

Jun 19th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. // funckija provjerava je li broj pr0st
  9. bool jeProsti(int broj) {
  10.     for(int i=2;i<sqrt(broj);i++)
  11.         if(broj%i==0) return false;
  12.     return true;
  13. }
  14.  
  15. // struktura za element u vezanoj listi
  16. struct element {
  17.     int broj;
  18.     element* sljedeci;
  19. };
  20.  
  21.  
  22.  
  23. int main() {
  24.     unsigned int m,n;
  25.    
  26.     do {
  27.         cin>>m>>n;
  28.     }
  29.     while(!((m>10000 && m <99999) && (n>10000 && n <99999) && (m<n)));
  30.    
  31.    
  32.    
  33.     element* lista = NULL;
  34.     element* prosliElement;
  35.     ofstream outputDat ("datoteka.txt");
  36.     for(int i=m;i<=n;i++) { // proci kroz sve brojeve od m do n
  37.         if(jeProsti(i)) { // ako je broj prost, onda ga tek dodati u listu
  38.             outputDat << i << endl; // upisati prosti broj u datoteku
  39.  
  40.             // ostatak je kod za upis broja u listu
  41.             element* trenutniElement = new element;
  42.             trenutniElement->broj = i;
  43.             trenutniElement->sljedeci=NULL;
  44.             if(lista==NULL)
  45.                 lista=trenutniElement;
  46.             else
  47.                 prosliElement->sljedeci = trenutniElement;
  48.            
  49.             prosliElement = trenutniElement;
  50.         }
  51.     }
  52.     outputDat.close();
  53.    
  54.     // prvo pronademo maksimalnu razliku u listi
  55.     // i naravno spremimo u varijablu maxLRazlika
  56.     element* elem = lista;
  57.     int prosliBroj = elem->broj;
  58.     int maxRazlika = 0;
  59.     int razlikaPrvi=0, razlikaDrugi=0;
  60.     elem=elem->sljedeci;
  61.     while(elem!=NULL) {
  62.         int razlika = elem->broj - prosliBroj;
  63.         if(razlika > maxRazlika) {
  64.             maxRazlika = razlika;
  65.             razlikaPrvi = elem->broj;
  66.             razlikaDrugi = prosliBroj;
  67.         }
  68.         prosliBroj = elem->broj;
  69.         elem = elem->sljedeci;
  70.     }
  71.    
  72.     // onda provjerimo koji sve parovi imaju tu razliku
  73.  
  74.     // resetiramo sve varijable jer idemo ispocetka kroz listu
  75.     elem=lista;
  76.     prosliBroj = elem->broj;
  77.     razlikaPrvi = 0;
  78.     razlikaDrugi = 0;
  79.     elem = elem->sljedeci;
  80.     while(elem!=NULL) {
  81.         int razlika = elem->broj - prosliBroj;
  82.         if(razlika == maxRazlika) { // svaki par brojeva koji ima maximalnu razliku, ispisat ga
  83.             razlikaPrvi = elem->broj;
  84.             razlikaDrugi = prosliBroj;
  85.             cout << "(" << razlikaPrvi << "-" << razlikaDrugi << ") = " << maxRazlika << endl;
  86.         }
  87.         prosliBroj = elem->broj;
  88.         elem = elem->sljedeci;
  89.     }
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement