結果

問題 No.3186 Big Order
ユーザー nouka28
提出日時 2025-06-20 22:26:43
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 879 bytes
コンパイル時間 487 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 71,444 KB
最終ジャッジ日時 2025-06-20 22:26:56
合計ジャッジ時間 3,927 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 11 WA * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

mod=998244353

def slv():
    A,B,C=map(int,input().split())

    ps=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]

    # print(len(ps))

    def calc(p:int)->int:
        a,b,c=A,B,C
        ca,cc=0,0
        while a%p==0:
            a//=p
            ca+=1
        while c%p==0:
            c//=p
            cc+=1
        
        return 10**50 if cc==0 else (ca*b)//cc
    
    ret=10**50

    for p in ps:
        ret=min(ret,calc(p))
    
    tmp=0
    while A%C==0:
        tmp+=B
        A//=C
    while B>1:
        A=math.gcd(A,C)
        t=-1
        a=A
        for i in range(1,21):
            if a%C==0:
                t=i
                break
            a*=A
        if t==-1:break
        tmp+=B//t
        B//=t
        A=a//C
    
    ret=min(ret,tmp)

    print(ret%mod)

T=int(input())

while T:
    T-=1
    slv()
0