結果

問題 No.368 LCM of K-products
ユーザー lam6er
提出日時 2025-03-20 21:10:58
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 282 ms / 2,000 ms
コード長 1,033 bytes
コンパイル時間 172 ms
コンパイル使用メモリ 82,608 KB
実行使用メモリ 77,028 KB
最終ジャッジ日時 2025-03-20 21:11:04
合計ジャッジ時間 3,875 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 35
権限があれば一括ダウンロードができます

ソースコード

diff #

def prime_factors(n):
    factors = {}
    while n % 2 == 0:
        factors[2] = factors.get(2, 0) + 1
        n = n // 2
    i = 3
    while i * i <= n:
        while n % i == 0:
            factors[i] = factors.get(i, 0) + 1
            n = n // i
        i += 2
    if n > 2:
        factors[n] = 1
    return factors

def main():
    MOD = 10**9 + 7
    n, k = map(int, input().split())
    a = list(map(int, input().split()))
    
    all_primes = set()
    factors_list = []
    for num in a:
        factors = prime_factors(num)
        factors_list.append(factors)
        all_primes.update(factors.keys())
    
    primes = list(all_primes)
    result = 1
    for p in primes:
        exponents = []
        for factors in factors_list:
            exponents.append(factors.get(p, 0))
        exponents.sort(reverse=True)
        s = sum(exponents[:k]) if len(exponents) >= k else sum(exponents)
        if s > 0:
            result = (result * pow(p, s, MOD)) % MOD
    print(result)

if __name__ == "__main__":
    main()
0