2301_78163733 2023-06-12 11:00 采纳率: 100%
浏览 38
已结题

函数调用,求整数n以内(不包括n)所有素数之和

img

正确答案应该是输入100输出1060,但是这个输入100,输出1请问代码哪里错了

  • 写回答

3条回答 默认 最新

  • TechLead KrisChang 优质创作者: 人工智能技术领域 2023-06-12 11:17
    关注

    简单看了下有个逻辑错误:
    当 i%j==0 时,你返回了 False,意味着 i 不是素数。但是,你的循环是从 j=1 开始的,对于所有的 i,i%1 都等于 0,因此你的函数对于所有的 i 都返回 False。

    有个代码做参考:

    def is_prime(n):
        if n <= 1:
            return False
        if n == 2:
            return True
        if n % 2 == 0:
            return False
        max_divisor = int(n ** 0.5) + 1
        for d in range(3, max_divisor, 2):
            if n % d == 0:
                return False
        return True
    
    sum_of_primes = 0
    n = int(input())
    for i in range(1, n):
        if is_prime(i):
            sum_of_primes += i
    print(sum_of_primes)
    
    
    

    如果有帮助,请点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月12日
  • 已采纳回答 6月12日
  • 修改了问题 6月12日
  • 创建了问题 6月12日