1 日 1 問 - 素因数の数 (2022 年の第 13 回蘭橋杯地方大会の実際の問題)

正の整数を素因数に分解する方法:毎日の質問 - 正の整数を素因数に分解_Ben Xiaogu のブログ-CSDN ブログ

タイトルの説明: 正の整数 n が与えられた場合、n の約数となる素数はいくつあるか。

入力形式: 入力の最初の行には整数 n が含まれます。

出力形式: n の素約数の数を表す整数を出力します。

入力例:

396

出力例:

3

ヒント:

396 には 2、3、11 の 3 つの素約数があります。

import math


def is_prime(factor_list):
    global list
    list = []
    for num in factor_list:
        if num == 1:
            pass
        elif num == 2:
            # 2是质数,可以直接输出
            list.append(num)
        else:
            for i in range(2, num):
                if num % i == 0:
                    # 如果能被2 ~ n-1的数整除,则不是质数
                    break
            else:
                list.append(num)


def get_factor(n):
    global flist
    flist = []
    for i in range(1, n):
        if n % i == 0:
            flist.append(i)


n = int(input())
get_factor(n)
is_prime(flist)
num = len(list)
print(n, "的素因数个数:", num)

 

 

おすすめ

転載: blog.csdn.net/weixin_51995147/article/details/126882248