Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1. Опис на проблемот:
- Да се најдат и испечатат сите броеви во интервалот [1, m) кои се
- деливи со нивните спротивни броеви.
- 2. Анализа на задачата:
- Задачата вклучува внесување на границата на интервалот кој ќе се
- разгледува, дефинирање на функција за наоѓање на спротивен број,
- итерирање низ броевите во интервалот, тестирање на деливост и печатење
- на сите броеви кои го задовлуваат условот.
- 3. Опис на влезни податоци, меѓурезултати и резултати:
- Влезни податоци: 1. Единствен влезен податок е бројот "m" кој ја претставува
- горната граница на разгледуваниот интервал.
- Меѓурезултати: N/A
- Резултати: 1. Сите броеви во интервалот [1, m) кои се деливи со нивните
- спротивни броеви (кои исто така се печатат).
- 4. Алгоритам:
- алгоритам BroeviDeliviSoSprotivniBroevi;
- функција NajdiSprotivenBroj(OriginalenBroj);
- почеток
- SprotivenBroj <- 0;
- додека (OriginalenBroj > 0) извршувај
- почеток
- SprotivenBroj <- (SprotivenBroj * 10) + (OriginalenBroj MOD 10);
- OriginalenBroj <- OriginalenBroj DIV 10;
- крај
- крај_додека {OriginalenBroj > 0}
- врати SprotivenBroj;
- крај
- крај_функција
- почеток
- читај m;
- ако (m <= 1) тогаш
- печати 'Грешка!';
- крај_ако{m <= 1}
- додека (m > 1) извршувај
- почеток
- m <- m - 1;
- n <- SprotivenBroj(m);
- ако (m MOD n = 0) тогаш
- печати m, ' е делител на ', n;
- крај_ако{m MOD n = 0}
- крај
- крај_додека{m > 0)
- крај.
- 5. Користење на програмата:
- Програмата се користи така што преку стандарден влез (тастатура) се внесува
- горната граница на интервалот во кој ќе се бараат броеви деливи со нивните
- спротивни броеви.
- */
- #include <iostream>
- using namespace std;
- int findOpposite ( int ); // Prototip.
- int main ( )
- {
- // Ispechati informacii.
- cout << "Ovaa programa kje iterira niz site elementi vo intervalot [1, m)," << endl
- << "naogjajkji i pechatejkji gi broevite koi se delivi so svoite sprotivni broevi." << endl << endl
- << "Vnesete go \"m\": ";
- // Vlezni podatoci.
- int m;
- cin >> m;
- cout << endl;
- // Osiguraj deka e vnesen broj, i deka brojot e pogolem od 1.
- if ( !cin || m <= 1 )
- {
- cout << "Losh vnes... prekinuvam so izvrshuvanje." << endl;
- return 1;
- }
- // Iteriraj niz broevite, pochnuvajkji od (n - 1) i odejkji do 1.
- while ( --m >= 1 )
- {
- int n = findOpposite ( m );
- if ( m % n == 0 )
- cout << n << " e delitel na " << m << "." <<endl;
- }
- return 0;
- }
- int findOpposite ( int number )
- {
- // Vo ovaa promenliva kje bide skladiran generiraniot broj.
- int oppositeNumber = 0;
- // Generiraj go brojot.
- do
- {
- oppositeNumber = (oppositeNumber * 10) + (number % 10);
- number /= 10;
- }
- while ( number > 0 );
- // Vrati go rezultatot.
- return oppositeNumber;
- }
Advertisement
Add Comment
Please, Sign In to add comment