此篇主要為writeup跟歐幾里得算法相關筆記
會解以下兩題,開始吧( ̄︶ ̄)↗
網址 : https://cryptohack.org/courses/modular/gcd/
這題要我們求出a, b兩數的公因數,可利用輾轉相除法(歐幾里得算法)來解
a = 66528
b = 52920
while(b != 0):
temp = a % b
a = b
b = temp
print(a)
利用python math函式庫中的gcd()
import math
print(math.gcd(66528, 52920))
簡單多惹XD
flag : 1512
網址 : https://cryptohack.org/courses/modular/egcd/
利用擴展歐幾里得算法得出u跟v,flag為數值最小的
python -m pip install egcd
from egcd import egcd
p = 26513
q = 32321
print(egcd(32321,26513))
flag : -8404
今天複習了輾轉相除法跟學到了擴展歐幾里得算法,有點小難,不過還是有去理解一下惹(但函式庫真滴好用XD)明天繼續下面兩題!
擴展歐幾里得算法 : https://zh.wikipedia.org/zh-tw/%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95
擴展歐幾里得算法(影片講解) : https://www.youtube.com/watch?v=hB34-GSDT3k&t=2s&ab_channel=GVSUmath
輾轉相除法 : https://www.csie.ntu.edu.tw/~b98902112/cpp_and_algo/cpp02/euclidean_algorithm.html