如何用Python基础语法(限if/for/print等)生成1000以内孪生素数?
1000以内孪生素数生成方案(符合指定语法限制)
针对你需要仅用for、if、print等基础语法生成孪生素数,且原代码在1000以内失效的问题,以下是适配的实现:
代码实现
for p in range(2, 999): # 统计p的因数个数(仅判断到平方根范围) p_factor_count = 0 for i in range(2, int(p**0.5) + 1): if p % i == 0: p_factor_count += 1 # 统计p+2的因数个数 q = p + 2 q_factor_count = 0 for j in range(2, int(q**0.5) + 1): if q % j == 0: q_factor_count += 1 # 若两者均无额外因数,即为孪生素数对 if p_factor_count == 0 and q_factor_count == 0: print(f"({p}, {q})")
关键改进说明
- 动态素数判断逻辑:不再固定素数判断的上限(比如原代码可能仅检查到10),而是对每个数计算其平方根,仅遍历到平方根的整数部分+1的范围。由于一个数的大于平方根的因数必然对应一个小于平方根的因数,这种方式能覆盖所有可能的因数,确保1000以内的数都能被正确判断素性。
- 语法严格合规:全程仅使用允许的基础语法,未涉及
while、def、break等受限语句。 - 合理遍历范围:将p的遍历上限设为998,保证p+2不超过1000,完整覆盖所有符合要求的孪生素数对。
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

