結果

問題 No.2954 Calculation of Exponentiation
ユーザー ねしんねしん
提出日時 2024-11-08 22:15:18
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 154 ms / 2,000 ms
コード長 1,688 bytes
コンパイル時間 215 ms
コンパイル使用メモリ 82,688 KB
実行使用メモリ 88,960 KB
最終ジャッジ日時 2024-11-08 22:15:27
合計ジャッジ時間 5,240 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 130 ms
88,832 KB
testcase_01 AC 137 ms
88,576 KB
testcase_02 AC 132 ms
88,608 KB
testcase_03 AC 153 ms
88,916 KB
testcase_04 AC 126 ms
88,832 KB
testcase_05 AC 129 ms
88,832 KB
testcase_06 AC 125 ms
88,960 KB
testcase_07 AC 129 ms
88,612 KB
testcase_08 AC 129 ms
88,928 KB
testcase_09 AC 130 ms
88,960 KB
testcase_10 AC 128 ms
88,832 KB
testcase_11 AC 154 ms
88,900 KB
testcase_12 AC 130 ms
88,960 KB
testcase_13 AC 126 ms
88,596 KB
testcase_14 AC 128 ms
88,648 KB
testcase_15 AC 128 ms
88,668 KB
testcase_16 AC 126 ms
88,588 KB
testcase_17 AC 129 ms
88,576 KB
testcase_18 AC 127 ms
88,576 KB
testcase_19 AC 138 ms
88,832 KB
testcase_20 AC 153 ms
88,448 KB
testcase_21 AC 132 ms
88,704 KB
testcase_22 AC 133 ms
88,576 KB
testcase_23 AC 125 ms
88,640 KB
testcase_24 AC 131 ms
88,576 KB
testcase_25 AC 127 ms
88,832 KB
testcase_26 AC 128 ms
88,832 KB
testcase_27 AC 130 ms
88,596 KB
testcase_28 AC 146 ms
88,560 KB
testcase_29 AC 127 ms
88,560 KB
testcase_30 AC 125 ms
88,448 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from fractions import Fraction

def gcd(a,b):
  if b==0:
    return a
  else:
    return gcd(b,a%b)
A,B=list(map(str,input().split()))
if A[0]=="0":
  if B[0]!="-":
    print("No")
    exit()
  a=""
  for i in range(len(A)):
    if A[i]!=".":
      a=a+A[i]
  a=int(a)
  b=""
  for i in range(1,len(B)):
    if B[i]!=".":
      b=b+B[i]
  b=int(b)
  aa=Fraction(10000,a)
  bb=Fraction(b,10000)
  if aa.denominator!=1:
    print("No")
    exit()
  c=aa.numerator
  d=c
  cnt=[]
  for i in range(2,int(d**0.5)+5):
    if c%i==0:
      z=0
      while c%i==0:
        c=c//i
        z+=1
      cnt.append(z)
  if len(cnt)==1:
    if cnt[0]%bb.denominator==0:
      print("Yes")
      exit()
    else:
      print("No")
      exit()
  else:
    m=cnt[0]
    for i in range(1,len(cnt)):
      m=gcd(max(m,cnt[i]),min(m,cnt[i]))
    if m%bb.denominator==0:
      print("Yes")
      exit()
    else:
      print("No")
      exit()  
if B=="0.0000":
  print("Yes")
  exit()
if B[0]=="-":
  print("No")
  exit()
if A=="1.0000":
  print("Yes")
  exit()
a=""
for i in range(len(A)):
  if A[i]!=".":
    a=a+A[i]
a=int(a)
b=""
for i in range(len(B)):
  if B[i]!=".":
    b=b+B[i]
b=int(b)
aa=Fraction(a,10000)
bb=Fraction(b,10000)
if aa.denominator!=1:
  print("No")
  exit()
c=aa.numerator
d=c
cnt=[]
for i in range(2,int(d**0.5)+5):
  if c%i==0:
    z=0
    while c%i==0:
      c=c//i
      z+=1
    cnt.append(z)
if len(cnt)==1:
  if cnt[0]%bb.denominator==0:
    print("Yes")
    exit()
  else:
    print("No")
    exit()
else:
  m=cnt[0]
  for i in range(1,len(cnt)):
    m=gcd(max(m,cnt[i]),min(m,cnt[i]))
  if m%bb.denominator==0:
    print("Yes")
    exit()
  else:
    print("No")
    exit()
0