1. 两个数的 最小公倍数 等于两个数的乘积除以最大公约数,scm (a, b) = a * b / gcd (a, b),所以主要是最大公约数问题
gcd 问题:辗转相除法
gcd 问题:辗转相除法
依据就是欧几里得定理: gcd(a, b) = gcd(b, a%b)
def gcd (a, b):
while b > 0:
c = a % b
a, b = b, c
return a
2 判断素数
逻辑就是穷举测试2到 [sqrt(x)]]是否能被x 整除
import math
def isPrime (n):
for i in xrange (2, int(math.sqrt(n))):
if (n % i) == 0: return False
return True