Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int main()
- {
- using std::cout;
- using std::cin;
- typedef unsigned long long ullong;
- cout << "\t\t\tProverka za prost broj\n";
- cout << "Vnesi broj (0 za stop):\t";
- ullong broj; //promenliva koja kje go cuva brojot vnesen od korisnikot
- cin >> broj;
- while(broj != 0) //glavniot loop koj kje se izvrsuva se dodeka korisnikot ne vnese 0
- {
- /*
- Znamence koe kje bide true dokolku brojot e prost.
- Na pocetok pretpostavuvame deka brojot e prost.
- Celta na programot e da najde broj koj go deli brojot.
- Dokolku najde, togas brojot ne e prost.
- */
- bool prost = true;
- ullong delitel; //kje go cuva prviot broj sto kje se najde deka e delitel na brojot
- if(broj == 1) prost = false; //1 po definicija ne e nitu prost nitu slozen
- else if(broj == 2) prost = true; //mora da definirame deka 2 e prost broj
- else if(broj % 2 == 0) // ako brojot se deli so 2, togas toj sigurno ne e prost broj
- {
- delitel = 2;
- prost = false;
- }
- else
- {
- /*
- Dokolku brojot ne se deli so 2, toj ne se deli so nitu eden paren broj,
- pa treba da gi proverime samo neparnite
- */
- for(ullong i = 3; i <= broj / 2; i += 2) // deliteli na brojot mozat da bidat samo brojki pomali od negovata polovina
- {
- if(broj % i == 0)
- {
- delitel = i;
- prost = false;
- break; // nema potreba da proveruvame povekje deliteli, vekje najdovme eden
- }
- }
- }
- //sega treba samo da go proverime znamenceto prost
- if(prost) //isto so if(prost == true)
- {
- cout << broj << " e prost broj.\n";
- }
- else
- {
- if(broj == 1) //posebniot slucaj dokolku vneseniot broj e 1
- {
- cout << "1 ne e nitu prost, nitu slozen broj.\n";
- }
- else
- {
- cout << broj << " ne e prost broj. Se deli so " << delitel << ".\n";
- }
- }
- //nov vlez od korisnikot
- cout << "Vnesi broj (0 za stop):\t";
- cin >> broj;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement