結果
| 問題 |
No.1250 汝は倍数なりや?
|
| コンテスト | |
| ユーザー |
direwolf7
|
| 提出日時 | 2020-10-09 23:04:27 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,582 bytes |
| コンパイル時間 | 903 ms |
| コンパイル使用メモリ | 82,064 KB |
| 実行使用メモリ | 237,696 KB |
| 最終ジャッジ日時 | 2024-07-20 13:54:05 |
| 合計ジャッジ時間 | 26,576 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 40 WA * 9 |
ソースコード
import os, sys
from io import IOBase, BytesIO
py2 = round(0.5)
if py2:
from future_builtins import ascii, filter, hex, map, oct, zip
range = xrange
BUFSIZE = 8192
class FastIO(BytesIO):
newlines = 0
def __init__(self, file):
self._file = file
self._fd = file.fileno()
self.writable = 'x' in file.mode or 'w' in file.mode
self.write = super(FastIO, self).write if self.writable else None
def _fill(self):
s = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
self.seek((self.tell(), self.seek(0,2), super(FastIO, self).write(s))[0])
return s
def read(self):
while self._fill(): pass
return super(FastIO,self).read()
def readline(self):
while self.newlines == 0:
s = self._fill(); self.newlines = s.count(b'\n') + (not s)
self.newlines -= 1
return super(FastIO, self).readline()
def flush(self):
if self.writable:
os.write(self._fd, self.getvalue())
self.truncate(0), self.seek(0)
class IOWrapper(IOBase):
def __init__(self, file):
self.buffer = FastIO(file)
self.flush = self.buffer.flush
self.writable = self.buffer.writable
if py2:
self.write = self.buffer.write
self.read = self.buffer.read
self.readline = self.buffer.readline
else:
self.write = lambda s:self.buffer.write(s.encode('ascii'))
self.read = lambda:self.buffer.read().decode('ascii')
self.readline = lambda:self.buffer.readline().decode('ascii')
sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
input = lambda: sys.stdin.readline().rstrip('\r\n')
# Cout implemented in Python
import sys
class ostream:
def __lshift__(self,a):
sys.stdout.write(str(a))
return self
cout = ostream()
endl = '\n'
def get_input(a=str):
return a(input())
def get_int_input():
return get_input(int)
def get_input_arr(a):
return list(map(a, input().split()))
def get_int_input_arr():
return get_input_arr(int)
def sieve(n):
primes = [-1] * (n)
primes[0] = -1
primes[1] = -1
i = 2
sqrt_n = int(n ** 0.5 + 1)
prime_nums = []
while i <= sqrt_n:
if primes[i] == -1:
primes[i] = 1
prime_nums.append(i)
for j in range(i * i, n, i):
primes[j] = 2
i += 1
for i in range(sqrt_n, n):
if primes[i] == -1:
primes[i] = 1
prime_nums.append(i)
return prime_nums
def get_prime_fac(primes, num):
freq = {}
for prime in primes:
if prime <= num and num > 1:
r = 0
while num % prime == 0 and num > 1:
r += 1
num = num // prime
if r > 0:
freq[prime] = r
else:
break
return freq
from collections import defaultdict
def solve():
prime_nums = sieve(10 ** 7)
n, h = get_int_input_arr()
arr = get_int_input_arr()
h_freq = get_prime_fac(prime_nums, h)
for i in range(len(arr)):
for p_h in h_freq:
while h_freq[p_h] > 0 and arr[i] > 1 and arr[i] % p_h == 0:
arr[i] = arr[i] // p_h
h_freq[p_h] -= 1
res = True
for i in h_freq:
if h_freq[i] > 0:
res = False
break
if res:
cout<<"YES"<<endl
else:
cout<<"NO"<<endl
def main():
solve()
if __name__ == "__main__":
main()
direwolf7