合数个数

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

一个数如果除了 1 和自己还有其他约数,则称为一个合数。例如:1,2,3 不是合数,4,6 是合数。

请问从 1 到 2020 一共有多少个合数。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M


来自: 2.合数个数 – 蓝桥云课

我的题解

import math

def judge_number_is_heshu(num):
    """
    判断一个数是否为合数。
    
    参数:
    num -- 要判断的数字
    
    返回值:
    如果num是合数(即除了1和自身外还有其他因子),返回True;
    如果num是质数(即除了1和自身外没有其他因子),返回False。
    """
    if num == 1 or num == 2:
        return False  # 1和2不被认为是合数
    else:
        # 遍历2到num的平方根,判断num是否能被整除,若能则num为合数
        for i in range(2, int(math.sqrt(num)) + 1):
            if num % i == 0:
                return True
    return False

if __name__ == '__main__':
    # 统计1到2020之间合数的个数
    count = 0
    for i in range(1, 2021):
        if judge_number_is_heshu(i):
            count += 1
    print(count)  # 输出合数的个数

输出结果是:1713


存档地址:https://www.yuque.com/worthstudy/study/pomzml0mfvo39ihd?singleDoc#

© 版权声明
THE END
喜欢就点赞支持一下吧,如果觉得不错或日后有所需要,可以收藏文章和关注作者哦。
点赞0
评论 抢沙发

请登录后发表评论

    暂无评论内容