From 0cccd9607e7a792268c875fd1e2cf61ee788286c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=A4=8F=E6=B8=9D?= <1269236636@qq.com> Date: Sun, 12 Oct 2025 22:30:45 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0README=E5=92=8Cmain.py?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/README.md | 2 +- src/main.py | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/doc/README.md b/doc/README.md index c1caf86..9792279 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,2 +1,2 @@ -基于Python的Hello World +基于Python的输出前100位质数 diff --git a/src/main.py b/src/main.py index 8e23576..1cb50b6 100644 --- a/src/main.py +++ b/src/main.py @@ -1 +1,32 @@ -print("Hello World") \ No newline at end of file +def is_prime(n): + """判断一个数是否为质数""" + if n <= 1: + return False + if n == 2: + return True + if n % 2 == 0: + return False + for i in range(3, int(n**0.5) + 1, 2): + if n % i == 0: + return False + return True + +def print_first_n_primes(n): + """打印前n个质数""" + count = 0 + num = 2 + primes = [] + + while count < n: + if is_prime(num): + primes.append(num) + count += 1 + num += 1 + + # 打印结果,每10个一行 + for i in range(0, len(primes), 10): + print(", ".join(map(str, primes[i:i+10]))) + +# 输出前100位质数 +print("前100位质数为:") +print_first_n_primes(100) \ No newline at end of file -- 2.34.1 From 4aaff977e2d9e69773b2eafe351c765e96f363d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=A4=8F=E6=B8=9D?= <1269236636@qq.com> Date: Sun, 12 Oct 2025 22:39:10 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/质数计算程序文档.txt | 75 ++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 doc/质数计算程序文档.txt diff --git a/doc/质数计算程序文档.txt b/doc/质数计算程序文档.txt new file mode 100644 index 0000000..1db9b64 --- /dev/null +++ b/doc/质数计算程序文档.txt @@ -0,0 +1,75 @@ +质数计算程序文档 + +功能概述 + +本程序用于计算并输出前100个质数,采用高效的算法实现质数判断和批量输出功能。 + +代码实现 + +质数判断函数 + +def is_prime(n): + """判断一个数是否为质数""" + if n <= 1: + return False + if n == 2: + return True + if n % 2 == 0: + return False + for i in range(3, int(n**0.5) + 1, 2): + if n % i == 0: + return False + return True + + +算法特点: +• 排除小于等于1的数字 + +• 单独处理数字2(最小的质数) + +• 排除所有偶数(除了2) + +• 只需检查到√n的奇数因子 + +前N个质数输出函数 + +def print_first_n_primes(n): + """打印前n个质数""" + count = 0 + num = 2 + primes = [] + + while count < n: + if is_prime(num): + primes.append(num) + count += 1 + num += 1 + + # 打印结果,每10个一行 + for i in range(0, len(primes), 10): + print(", ".join(map(str, primes[i:i+10]))) + + +输出格式: +• 每行显示10个质数 + +• 质数之间用逗号和空格分隔 + +• 整齐的表格化显示 + +程序执行 + +# 输出前100位质数 +print("前100位质数为:") +print_first_n_primes(100) + + +输出结果 + +程序将输出前100个质数,格式如下: + +前100位质数为: +2, 3, 5, 7, 11, 13, 17, 19, 23, 29 +31, 37, 41, 43, 47, 53, 59, 61, 67, 71 +73, 79, 83, 89, 97, 101, 103, 107, 109, 113 +... -- 2.34.1 From e544cc5289c80da843593fc805de5d29826074de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=A4=8F=E6=B8=9D?= <1269236636@qq.com> Date: Sun, 12 Oct 2025 23:16:49 +0800 Subject: [PATCH 3/3] TTTTest --- doc/000.txt | 0 doc/README.md | 2 - doc/质数计算程序文档.docx | Bin 0 -> 30863 bytes doc/质数计算程序文档.txt | 75 ------------------------------ 4 files changed, 77 deletions(-) create mode 100644 doc/000.txt delete mode 100644 doc/README.md create mode 100644 doc/质数计算程序文档.docx delete mode 100644 doc/质数计算程序文档.txt diff --git a/doc/000.txt b/doc/000.txt new file mode 100644 index 0000000..e69de29 diff --git a/doc/README.md b/doc/README.md deleted file mode 100644 index 9792279..0000000 --- a/doc/README.md +++ /dev/null @@ -1,2 +0,0 @@ -基于Python的输出前100位质数 - diff --git a/doc/质数计算程序文档.docx b/doc/质数计算程序文档.docx new file mode 100644 index 0000000000000000000000000000000000000000..0c153cbeec4f00d6abc6ee19e73bbd94648b2b4b GIT binary patch literal 30863 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 literal 0 HcmV?d00001 diff --git a/doc/质数计算程序文档.txt b/doc/质数计算程序文档.txt deleted file mode 100644 index 1db9b64..0000000 --- a/doc/质数计算程序文档.txt +++ /dev/null @@ -1,75 +0,0 @@ -质数计算程序文档 - -功能概述 - -本程序用于计算并输出前100个质数,采用高效的算法实现质数判断和批量输出功能。 - -代码实现 - -质数判断函数 - -def is_prime(n): - """判断一个数是否为质数""" - if n <= 1: - return False - if n == 2: - return True - if n % 2 == 0: - return False - for i in range(3, int(n**0.5) + 1, 2): - if n % i == 0: - return False - return True - - -算法特点: -• 排除小于等于1的数字 - -• 单独处理数字2(最小的质数) - -• 排除所有偶数(除了2) - -• 只需检查到√n的奇数因子 - -前N个质数输出函数 - -def print_first_n_primes(n): - """打印前n个质数""" - count = 0 - num = 2 - primes = [] - - while count < n: - if is_prime(num): - primes.append(num) - count += 1 - num += 1 - - # 打印结果,每10个一行 - for i in range(0, len(primes), 10): - print(", ".join(map(str, primes[i:i+10]))) - - -输出格式: -• 每行显示10个质数 - -• 质数之间用逗号和空格分隔 - -• 整齐的表格化显示 - -程序执行 - -# 输出前100位质数 -print("前100位质数为:") -print_first_n_primes(100) - - -输出结果 - -程序将输出前100个质数,格式如下: - -前100位质数为: -2, 3, 5, 7, 11, 13, 17, 19, 23, 29 -31, 37, 41, 43, 47, 53, 59, 61, 67, 71 -73, 79, 83, 89, 97, 101, 103, 107, 109, 113 -... -- 2.34.1