diff --git a/哥德巴赫猜想.py b/哥德巴赫猜想.py new file mode 100644 index 0000000..bb6ab96 --- /dev/null +++ b/哥德巴赫猜想.py @@ -0,0 +1,21 @@ +def is_zhi(n): + if n==1: + return 0 + if n==2: + return 1 + is_zhi=1 + + for i in range(2,n): + if n%i==0: + is_zhi=0 + return is_zhi + +def gede(n1,n2): + if is_zhi(n1) and is_zhi(n2): + print(n1, n2) + return n1 + gede(n1-1,n2+1) + #print(n1,n2,is_zhi(n1) , is_zhi(n2)) + +n=int(input()) +gede(n-1,1) \ No newline at end of file diff --git a/汉诺塔.py b/汉诺塔.py new file mode 100644 index 0000000..4248db5 --- /dev/null +++ b/汉诺塔.py @@ -0,0 +1,9 @@ +def han(start,end,temp,n): + if n==1: + return 0; + else: + han(start, temp, end, n - 1) + print(n, start, "---->", end) + han(temp, start, end, n - 1) + +han("A","B","C",5) \ No newline at end of file diff --git a/质数筛.py b/质数筛.py new file mode 100644 index 0000000..3b05527 --- /dev/null +++ b/质数筛.py @@ -0,0 +1,19 @@ +def sieve_of_eratosthenes(n): + primes = [True] * (n + 1) # 创建一个布尔列表,初始时所有元素设为True + p = 2 + while p * p <= n: + # 如果 primes[p] 未被标记为 False, 则是一个质数 + if primes[p]: + # 更新所有 p 的倍数,从 p*p 开始标记为 False + for i in range(p * p, n + 1, p): + primes[i] = False + p += 1 + + # 收集所有质数 + prime_numbers = [p for p in range(2, n + 1) if primes[p]] + return prime_numbers + + +# 测试算法 +n = 50 +print(f"小于等于 {n} 的所有质数: {sieve_of_eratosthenes(n)}") \ No newline at end of file