Egy szám osztóit hogyan lehet meghatározni?
Figyelt kérdés
Például 100-nak az összes osztója, nem csak az osztói számát, hanem magát az osztókat is tudjam használni műveletekhez.2015. máj. 3. 19:14
1/15 anonim válasza:
Biztos, hogy van elegánsabb módja is, de a legegyszerűbb, ha modulus-szal végighaladsz az adott számig bezárólag az összes pozitív egész számon, és ahol 0 a maradék azt tárolod egy int-ben.
2/15 anonim válasza:
Bocs, az adott int-et nyomod be egy array-be.
3/15 A kérdező kommentje:
Köszönöm!
2015. máj. 3. 19:24
4/15 anonim válasza:
Itt egy gyorsabb megoldás(python): [link]
5/15 anonim válasza:
Nem kell a számig, max a feléig.
6/15 anonim válasza:
#5-nek igaza van, nem gondoltam rendesen végig a válaszomat.
7/15 anonim válasza:
Nem a feléig, hanem a gyökéig, feltételezve hogy minden lépésnél kettőt kapsz. Mivel a szám osztói 1 és n között találhatóak (a számnak osztója saját maga is).
8/15 A kérdező kommentje:
Így sikerült megcsinálnom:
int num=100;
for (int i = 1; i <= num; ++i){
if (num % i == 0)
cout << i << endl;
}
2015. máj. 3. 21:24
9/15 anonim válasza:
Ez működik amint látod, de elég num feléig menni így.
Másik megoldással - amire #7 akart kilyukadni - pedig elég num gyökéig menni. De ebben a megoldásban el kell osztani minden talált osztóval numot, és akkor kapod meg a num gyöke és num fele között levő osztókat.
10/15 SimkoL válasza:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int osztoszam(int osztando){
int meddig = (int)sqrt(osztando);
for (int i = meddig; i >= 1; --i)
if (meddig * i == osztando) cout << i << " ";
else if (osztando % i == 0) cout << i << " " << osztando / i << " ";
}
int main() {
osztoszam(12);
system("PAUSE");
return 0;
}
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!