Kezdőoldal » Számítástechnika » Programozás » Programozás. C++. Egy bekért...

Programozás. C++. Egy bekért szám osztóinak számát kéne megadni. Hogyan oldjam meg?

Figyelt kérdés

2012. nov. 7. 21:55
 1/4 anonim ***** válasza:

Maradékos osztással nézd meg, hogy az adott számnak osztója-e a vizsgált szám.


Tehát:

int szam = bekértszam


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

if (szam % i == 0)

ez a szam osztó


Ezzel szépen megkapod az osztókat. Osztó ügye az a szám, ahol maradék nélkül megvan :)

2012. nov. 7. 21:58
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

Egy for ciklusban számlálással meg kell számolni, hány olyan szám van, ami osztja a bekért számot.

Elég a szám feléig elmenni.

2012. nov. 7. 22:11
Hasznos számodra ez a válasz?
 3/4 iostream ***** válasza:

De ha elment a feléig, akkor utána adjon hozzá mégegyet, mert a szám önmagával is osztható :)


Amúgy hatékonyabb, ha egyből a prímtényezős felbontását állítod elő. Hiszen ha pl nem osztható 2-vel, 3-al, akkor elég az ötödéig menni, ha öttel sem akkor a hetedéig stb.

2012. nov. 7. 22:16
Hasznos számodra ez a válasz?
 4/4 zsomkovacs ***** válasza:

Sőt, akkor már azt is csinálhatod, hogy megnézed, melyik prímtényező hányszor fordul elő, ezeket eggyel megnöveled és összeszorzod, és az az osztók száma. Tehát n osztóinak száma d lesz:


d=1;

i=2;

while (n>1)

{

c=1;

while (n%i==0)

{

c++;

n/=i;

}

i++;

d*=c;

}

2012. nov. 7. 22:33
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!