เขียนคำสั่งวนรอบในการหา ห.ร.ม. ของสองจำนวน
ให้ a เป็นจำนวนแรก (เช่น 90)
b เป็นจำนวนที่ สอง (เช่น 28)
การหาเศษจากการหาร ใช้สัญลัษณ์ % เช่น
90/28 = 3 เศษ 6
ดังนั้น 90 % 28 = 6
การหา หรม.โดยวิธีของยุคลิด ทำดังนี้
นำจำนวนที่สอง ไปหารจำนวนที่หนึ่ง (ถ้าหารลงตัว ห.ร.ม. คือจำนวนที่ 2)
ถ้าหารไม่ลงตัว ให้นำเศษ(ครั้งที่ 1) ไปหารจำนวนที่สอง (ถ้าหารลงตัว ห.ร.ม. คือ เศษ(ครั้งที่ 1))
ถ้าหารไม่ลงตัว ให้นำเศษ(ครั้งที่2) ไปหารเศษครั้งที่ 1 (ถ้าหารลงตัว ห.ร.ม. คือ เศษ(ครั้งที่ 2))
ถ้าหารไม่ลงตัว ให้นำเศษ(ครั้งที่3) ไปหารเศษครั้งที่ 2 (ถ้าหารลงตัว ห.ร.ม. คือ เศษ(ครั้งที่ 3))
ใช้สัญลักษณ์แทนได้ดังนี้
a % b = r1 ถ้า r1 = 0 ห.ร.ม. คือ b
b % r1 = r2 ถ้า r2 = 0 ห.ร.ม. คือ r1
r1 %r 2 = r3 ถ้า r3 = 0 ห.ร.ม. คือ r2
อย่างนี้เรื่อยไป จนกว่า เศษ จะเป็น 0
แล้วมันก็จะยาวจนออกทะเล
สามารถลดตัวแปรลงได้ ดังนี้
a % b = 0 ห.ร.ม. คือ b
b % (a % b) = 0 ห.ร.ม. คือ (a % b)
(a %b) %r (b % (a % b)) = 0 ห.ร.ม. คือ (b % (a % b))
อย่างนี้เรื่อยไป จนกว่า เศษ จะเป็น 0
แล้วมันก็จะใหญ่ขึ้น ๆ ๆ เหมือนก้นหอย
จะเขียนอย่างไรให้มันวนเป็นวงกลม(ลูป) และหยุดเมื่อได้ค่าที่ต้องการออกมา
ช่วยเขียนเป็นภาษามนุษย์ ที่พอจะรู้เรื่องการเขียนโปรแกรมง่ายนิดๆหน่อย ๆ (เช่นภาษาที่ใช้ใน เอกเซล)
ไม่ต้องลงลึกถึงภาษาซี หรือ จาวา นะครับ
ช่วยเขียนคำสั่งเป็นภาษามนุษย์ที่รู้เรื่องการเขียนโปรแกรมนิดหน่อย หน่อยครับ
ให้ a เป็นจำนวนแรก (เช่น 90)
b เป็นจำนวนที่ สอง (เช่น 28)
การหาเศษจากการหาร ใช้สัญลัษณ์ % เช่น
90/28 = 3 เศษ 6
ดังนั้น 90 % 28 = 6
การหา หรม.โดยวิธีของยุคลิด ทำดังนี้
นำจำนวนที่สอง ไปหารจำนวนที่หนึ่ง (ถ้าหารลงตัว ห.ร.ม. คือจำนวนที่ 2)
ถ้าหารไม่ลงตัว ให้นำเศษ(ครั้งที่ 1) ไปหารจำนวนที่สอง (ถ้าหารลงตัว ห.ร.ม. คือ เศษ(ครั้งที่ 1))
ถ้าหารไม่ลงตัว ให้นำเศษ(ครั้งที่2) ไปหารเศษครั้งที่ 1 (ถ้าหารลงตัว ห.ร.ม. คือ เศษ(ครั้งที่ 2))
ถ้าหารไม่ลงตัว ให้นำเศษ(ครั้งที่3) ไปหารเศษครั้งที่ 2 (ถ้าหารลงตัว ห.ร.ม. คือ เศษ(ครั้งที่ 3))
ใช้สัญลักษณ์แทนได้ดังนี้
a % b = r1 ถ้า r1 = 0 ห.ร.ม. คือ b
b % r1 = r2 ถ้า r2 = 0 ห.ร.ม. คือ r1
r1 %r 2 = r3 ถ้า r3 = 0 ห.ร.ม. คือ r2
อย่างนี้เรื่อยไป จนกว่า เศษ จะเป็น 0
แล้วมันก็จะยาวจนออกทะเล
สามารถลดตัวแปรลงได้ ดังนี้
a % b = 0 ห.ร.ม. คือ b
b % (a % b) = 0 ห.ร.ม. คือ (a % b)
(a %b) %r (b % (a % b)) = 0 ห.ร.ม. คือ (b % (a % b))
อย่างนี้เรื่อยไป จนกว่า เศษ จะเป็น 0
แล้วมันก็จะใหญ่ขึ้น ๆ ๆ เหมือนก้นหอย
จะเขียนอย่างไรให้มันวนเป็นวงกลม(ลูป) และหยุดเมื่อได้ค่าที่ต้องการออกมา
ช่วยเขียนเป็นภาษามนุษย์ ที่พอจะรู้เรื่องการเขียนโปรแกรมง่ายนิดๆหน่อย ๆ (เช่นภาษาที่ใช้ใน เอกเซล)
ไม่ต้องลงลึกถึงภาษาซี หรือ จาวา นะครับ