Kezdőoldal » Számítástechnika » Programozás » Hogyan kell pythonban 2 szám...

Hogyan kell pythonban 2 szám legnagyobb közös osztóját kiszámolni? Ezt találtam: (de nem jó)

Figyelt kérdés

import sys


a, b = int(sys.argv[1]), int(sys.argv[2])

x = [ 1, 0 ]

y = [ 0, 1 ]

r = [ a, b ]

q = [ 0 ]

n = 0


while (r[n+1] != 0) :

q.append(r[n] // r[n+1])

r.append(r[n] % r[n+1])

x.append(x[n] - x[n+1] * q[n+1])

y.append(y[n] - y[n+1] * q[n+1])


# egyszeru kiiras

#print r[n], "=", r[n+1], "*", q[n+1], "+", r[n+2]


# bovitett kiiras

#print r[n+2], "\t", x[n+2], "\t", y[n+2], "\t",

# r[n+2], "=", a, "*", x[n+2], "+", b, "*",

# y[n+2]


n += 1


x, y, d = x[n], y[n], r[n]


print ("\n", d, "=", a, "*", x, "+", b, "*", y)



2015. okt. 11. 22:10
 1/3 anonim ***** válasza:

js-ben: Bár nem tudom hogy hogy lehetne a scriptet ellenőrizni.


<script>

var a = parseInt(prompt('Első szám'));

var b = parseInt(prompt('második szám'));


alert(a+' '+b);


if(a > b){a += b; b = a-b; a = a-b;}


var o=a;

var i = 1;


while (o>1){

if(a%i == 0){

var o = a/i;

if(b%o == 0){

alert('legnagyobb közös osztó:'+ o);

o= 1;

}


}

i++;

}


alert('vége');


</script>

2015. okt. 11. 23:40
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:
100%

Már meg van írva a fractions modulban, csak be kell importálni:


from fractions import gcd


Vagy ha az algoritmus érdekel akkor:


def gcd(a, b):

. . while b:

. . . a, b = b, a%b

. . return a



Ezután csak meg kell hívni, pl.:

gcd(12,20)

2015. okt. 11. 23:52
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Az algoritmus, amit keresel: euklideszi algoritmus.


A Wikipedián 3 féle implementációja is elérhető:

[link]

2015. okt. 12. 00:36
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!