Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. ======
  7.  
  8. JeProst je funkcija koja nam kazuje je li broj prost ili nije. Nju cemo koristiti unutar rekurzije, ali
  9. ona nije rekurzivna. Tek da nam bude kod laksi za citanje. Valjda znas kako se provjerava
  10. prostost broja. Ako je djeljiv sa 2, onda nije prost. Ako je djeljiv sa bilo kojim neparnim brojem
  11. poslje dva do svog kvadrata, onda nije prost.
  12.  
  13. ======
  14.  
  15. bool JeProst(long long n){
  16. if (n % 2 == 0) return false;
  17. for (int i=3; i<sqrt(n); i+=2){
  18. if (n%i == 0) return false;
  19. }
  20. return true;
  21. }
  22.  
  23. ======
  24.  
  25. ProstiDoN je void funkcija, tako da ne mora nista vracati. U njoj pozivamo B i N koje cemo unjeti u main()-u. B nam JeProst
  26. broj od KOJEG pocinjemo traznju prostih brojeva, a N nam je broj DO kojeg trazimo. Ako hoces da ti ide bez B-a,
  27. onda samo u main()-u de-komentariši b = 3. To je zato jer ako tek kreiramo broj B u rekurzivnoj funkciji, ona
  28. kad se bude ponavljala ce ponovo kreirati broj B u svojoj prvobitnoj formi (ovdje broj 3, jer je to prvi prosti
  29. broj), a nama treba B da se krece unaprijed. valjda ima smisla. Unutar nje prvo provjeravamo je li broj B prost,
  30. i ako jeste ispisujemo ga, a onda, ako je broj B manji od N, funkcija poziva samu sebe - ali sa B+1. Tada ta
  31. novopozvana funkcija ce raditi isto kao i prethodna, ali sa brojem B za 1 vecim. Nakon nekog vremena broj B
  32. ce dostici broj N i if (b<n) nece vise vaziti, pa ce funkcija sama sebe ukinuti.
  33. Ovo je doslovno isto kao da smo napisali
  34.  
  35. for (b; b<n; b++){
  36. if (JeProst(b))
  37. cout << b;
  38. }
  39.  
  40. ======
  41.  
  42. void ProstiDoN(long long b, long long n){
  43. if (JeProst(b))
  44. cout << b << endl;
  45. if (b<n)
  46. ProstiDoN(b+1, n);
  47. }
  48.  
  49. ======
  50. Ovdje ih upisujemo, i tada!
  51. ======
  52.  
  53. int main() {
  54. long long b, n;
  55. //b = 3;
  56. cin >> b >> n;
  57. ProstiDoN(b, n);
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement