From b0c6f6b97de67f1a7afa1e71d2d45c5926fd86d3 Mon Sep 17 00:00:00 2001 From: sairate Date: Sun, 14 Jul 2024 11:16:59 +0800 Subject: [PATCH] sairate --- 哥德巴赫猜想.py | 21 +++++++++++++++++++++ 汉诺塔.py | 9 +++++++++ 质数筛.py | 19 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 哥德巴赫猜想.py create mode 100644 汉诺塔.py create mode 100644 质数筛.py 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