Hogyan kell kiszámítani 2 szám legkisebb közös többszörösét és a legnagyobb közös osztóját?
Felbontod prímszámokra a két számot és a közös prímek összeszorozva a legnagyobb közös osztó.
A legkisebb közös többszörösnél pedig azokat a prímeket szorzod össze amik legalább az egyikben szerepelnek.
Az előző válaszok a prímszámokra (törzstényezőkre) bontás alapján való megoldást ismertették.
Van algoritmussal való meghatározási lehetőség is.
1. A nagyobb számot osztani kell a kisebbel.
2. Az előző sorban levő osztót osztani kell az előző maradékkal, és folytatni kell:
3. Az előző sorban levő osztót osztani kell az előző maradékkal, és folytatni kell:
….
Addig kell folytatni, míg a maradék 0 lesz. Az ebben a sorban levő osztó a legnagyobb közös osztó. Ha ez 1, akkor a két számnak nincs közös osztója.
A legkisebb közös többszöröst pedig úgy kapjuk, hogy a két szám szorzatát osztjuk a legnagyobb közös osztóval.
P é l d a :
Mennyi 5544 és 1596 legnagyobb közös osztója és legkisebb közös többszöröse?
5544 / 1596 = 3 és a maradék 756
1596 / 756 = 2 és a maradék 84
756 / 84 = 9 és a maradék 0.
Tehát a legnagyobb közös osztó: 84. (Az utolsó sor osztója.)
5544 / 84 = 66
1596 / 84 = 19
A legkisebb közös többszörös: 5544 * 1596 / 84 = 105336
105336 / 5544 = 19
105336 / 1596 = 66
Ez az eljárás azért szerencsés, mert könnyen készíthető hozzá program. (Például, ellenőrzés céljára.)
Windows alatt a „vbs” (Visual Basic Script) kiterjesztésű szöveg-fájlok: futtatható fájlok.
TEXT fájlban megírhatók, fájlnévként olyan nevet kell adni, aminek vbs a kiterjesztése, pl.: próba.vbs, ehhez Fájl típusaként a „Minden fájl”-t kell választani, Kódolásként pedig a „Unicode”-t célszerű.
A fájl úgy használható, mint egy „exe” fájl, 2 kattintásra, vagy ikonról indul. Jobb egér gombbal egyszer kattintva, a „Szerkesztés”-t választva módosítható.
A legnagyobb közös osztó és a legkisebb közös többszörös számítására leírok egy minta programot. Sajnos a GYK önkényesen szerkeszt, nem tudom mi kerül egy sorba, ezért a programbeli sorok között egy-egy sorközt hagyok, így talán jól elkülöníthetők lesznek az egyes sorok. Amit összetör, az egy sor.
do
a = inputbox("Egész számot írj!","1. SZÁM")
b = inputbox("1. szám: " & a & vbcrlf & vbcrlf & "Egész számot írj!","2. SZÁM")
x=a
y=b
e = int(a/b)
t=round((a/b-e)*b,0)
do while t<>0 and t<> 1
a=b
b=t
e = int(a/b)
t=round((a/b-e)*b,0)
loop
g="1. szám: " & x & vbcrlf & "2. szám: " & y
if t=1 then
z="Legnagyobb közös osztó: n i n c s ." & vbcrlf & "(Legkisebb közös többszörös: " & x*y & ".)"
else
z="Legnagyobb közös osztó: " & b & vbcrlf & "Legkisebb közös többszörös: " & x*y/b & "."
end if
kod = vbQestion + vbYesNo
MehetE = MsgBox (g & vbcrlf & z & vbcrlf & vbcrlf & "T o v á b b ?", 64 + 4, "EREDMÉNY")
loop until MehetE = 7
int lnko(int a, int b){
if((a%b) == 0) {return b};
else {return lnko(b, a%b)}
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!