Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- // Funkcija koja nam kazuje je li broj prost ili nije. Nju cemo koristiti unutar rekurzije, ali
- // ona nije rekurzivna. Tek da nam bude kod laksi za citanje. Valjda znas kako se provjerava
- // prostost broja. Ako je djeljiv sa 2, onda nije prost. Ako je djeljiv sa bilo kojim neparnim brojem
- // poslje dva do svog kvadrata, onda nije prost.
- bool JeProst(long long n){
- if (n % 2 == 0) return false;
- for (int i=3; i<sqrt(n); i+=2){
- if (n%i == 0) return false;
- }
- return true;
- }
- // Void funkcija, tako da ne mora nista vracati. U njoj pozivamo B i N koje cemo unjeti u main()-u. B nam JeProst
- // broj od KOJEG pocinjemo traznju prostih brojeva, a N nam je broj DO kojeg trazimo. Ako hoces da ti ide bez B-a,
- // onda samo u main()-u de-komentariši b = 3. To je zato jer ako tek kreiramo broj B u rekurzivnoj funkciji, ona
- // kad se bude ponavljala ce ponovo kreirati broj B u svojoj prvobitnoj formi (ovdje broj 3, jer je to prvi prosti
- // broj), a nama treba B da se krece unaprijed. valjda ima smisla. Unutar nje prvo provjeravamo je li broj B prost,
- // i ako jeste ispisujemo ga, a onda, ako je broj B manji od N, funkcija poziva samu sebe - ali sa B+1. Tada ta
- // novopozvana funkcija ce raditi isto kao i prethodna, ali sa brojem B za 1 vecim. Nakon nekog vremena broj B
- // ce dostici broj N i if (b<n) nece vise vaziti, pa ce funkcija sama sebe ukinuti.
- // Ovo je doslovno isto kao da smo napisali
- /*
- for (b; b<n; b++){
- if (JeProst(b))
- cout << b;
- }
- */
- void ProstiDoN(long long b, long long n){
- if (JeProst(b))
- cout << b << endl;
- if (b<n)
- ProstiDoN(b+1, n);
- }
- //Ovdje ih upisujemo, i tada!
- int main() {
- long long b, n;
- //b = 3;
- cin >> b >> n;
- ProstiDoN(b, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement