結果
問題 | No.2954 Calculation of Exponentiation |
ユーザー |
![]() |
提出日時 | 2025-03-20 20:26:49 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,034 bytes |
コンパイル時間 | 206 ms |
コンパイル使用メモリ | 81,996 KB |
実行使用メモリ | 59,048 KB |
最終ジャッジ日時 | 2025-03-20 20:27:54 |
合計ジャッジ時間 | 2,162 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 WA * 1 |
ソースコード
import sysfrom math import gcddef factor(n):factors = {}if n <= 1:return factorswhile n % 2 == 0:factors[2] = factors.get(2, 0) + 1n = n // 2i = 3max_i = int(n**0.5) + 1while i <= max_i and n > 1:while n % i == 0:factors[i] = factors.get(i, 0) + 1n = n // imax_i = int(n**0.5) + 1i += 2if n > 1:factors[n] = 1return factorsdef parse_ruijou_A(s):if '.' in s:int_part, dec_part = s.split('.', 1)dec_part = dec_part.ljust(4, '0')[:4]else:int_part = sdec_part = '0000'int_val = int(int_part)dec_val = int(dec_part)numerator = int_val * 10000 + dec_valdenominator = 10000g = gcd(numerator, denominator)return numerator // g, denominator // gdef parse_ruijou_B(s):s = s.strip()sign = 1if s.startswith('-'):sign = -1s = s[1:]if '.' in s:int_part, dec_part = s.split('.', 1)dec_part = dec_part.ljust(4, '0')[:4]else:int_part = sdec_part = '0000'int_val = int(int_part)dec_val = int(dec_part)numerator = int_val * 10000 + dec_valdenominator = 10000g = gcd(numerator, denominator)numer_reduced = numerator // gdenom_reduced = denominator // greturn (sign, numer_reduced, denom_reduced)def main():A_str, B_str = sys.stdin.readline().split()a_num, a_den = parse_ruijou_A(A_str)sign_B, numer_B, denom_B = parse_ruijou_B(B_str)a, b = a_num, a_dene, f = numer_B, denom_Bif sign_B == -1:a, b = b, aa_factors = factor(a)for prime in a_factors:if a_factors[prime] % f != 0:print("No")returnb_factors = factor(b)for prime in b_factors:if b_factors[prime] % f != 0:print("No")returnif b != 1:print("No")returnprint("Yes")if __name__ == '__main__':main()