Kezdőoldal » Számítástechnika » Programozás » Hogyan kell ezt a feladatot...

Hogyan kell ezt a feladatot lekodolni c++ ban?

Figyelt kérdés

Határozzuk meg egy természetes szám (N>1) 1-től különböző legkisebb osztó-ját!


Ciklussal kellene megoldani , de nem megy.

Lekodolnátok nekem ?

Válaszotokat elore is koszonom!



2016. okt. 11. 21:56
 1/10 anonim válasza:
Nem KÉT szám közös osztóját kérdezi véletlenül?
2016. okt. 11. 22:03
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
45%

#include <iostream>


int main() {

std::cout << "Add meg a szamot: ";

int szam;

std::cin >> szam;


for(int i = 2; i <= szam; ++i) {

if(szam % i == 0) {

std::cout << "A(z) " << szam << " legkisebb osztoja " << i << '\n';

break;

}

}

}


Két(vagy több) szám közös legkisebb osztójára pedig ha rákelesel így: "c++ least common multiplier" megtalálod.

2016. okt. 11. 22:08
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
100%

#2 No offense, de amikor egy ilyen ujjgyakorlat feladatnál valaki breakeket használ, legszívesebben hánynék.


#include <iostream>


int main() {

std::cout << "Add meg a szamot: ";

int szam;

std::cin >> szam;


int i=2;

while(szam % i != 0 ) i++;

std::cout<<"A(z) "<<szam<<" legkisebb osztoja "<<i<<std::endl;

return 0;

}

2016. okt. 12. 00:01
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:

#3


Kit mi zavar, engem más.

2016. okt. 12. 00:57
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:

De akkor nesze break nélkül.


for(int i = 2; i <= szam; ++i) {

if(szam % i == 0) {

std::cout << "A(z) " << szam << " legkisebb osztoja " << i << '\n';

i = szam + 1;

}

}

2016. okt. 12. 01:00
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

Akkor kombináljuk a két megoldást:


int oszto;

for(oszto = 2; szam % oszto; ++oszto);

cout << oszto << endl;


Még egy plusz feltétel is oda mehet a végtelen ciklus elkerülése végett: && oszto <= szam;

2016. okt. 12. 08:00
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
Fölösleges a plusz feltétel, mert egy számnak önmaga mindig oszója lesz, tehát maximum a kérdéses számig megy a ciklus, ott mindenképp kilép.
2016. okt. 12. 09:09
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
@#7 Akkor legyen a szám 1 és nézd meg mi történik
2016. okt. 12. 22:16
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
Bocs csak arra emlékeztem hogy természetes számokról volt szó. Ennek ellenére a bemenetet validálni kell mindig, a végtelen ciklus még a felhasználó hibájából sem megengedhető.
2016. okt. 12. 23:13
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

Az egy dolog, hogy ki van kötve, hogy a szám nagyobb, mint egy, az egy másik, hogy nem lesz végtelen ciklus hibás bemenetnél sem :D

Legrosszabb esetben túlcsordul, és visszatér a számmal magával. Hibás kimenet, de nem végtelen ciklus.

2016. okt. 12. 23:51
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!