結果
問題 | No.1711 Divide LCM |
ユーザー |
|
提出日時 | 2021-08-06 23:19:50 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,341 bytes |
コンパイル時間 | 151 ms |
コンパイル使用メモリ | 82,040 KB |
実行使用メモリ | 76,900 KB |
最終ジャッジ日時 | 2024-09-17 16:58:15 |
合計ジャッジ時間 | 12,266 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 1 RE * 2 |
other | AC * 5 WA * 30 RE * 7 |
ソースコード
M = 10**3spf = [i for i in range(M+1)]for i in range(2,M+1):if spf[i]==i:for j in range(2*i,M+1,i):spf[j] = iprime = [i for i in range(2,M+1) if spf[i]==i]def factorization(n):assert 1<=n<=10**6res = {}for p in prime:cnt = 0while n%p==0:cnt += 1n //= pif cnt:res[p] = cntif n!=1:res[n] = 1return resdef divisors(M):d=[]i=1while M>=i**2:if M%i==0:d.append(i)if i**2!=M:d.append(M//i)i=i+1return dfrom collections import dequeN = int(input())A = list(map(int,input().split()))M = 10**6pre = [0 for i in range(M+1)]all_divisors = set()for a in A:a_prime = factorization(a)for p in a_prime:pre[p] = max(pre[p],pow(p,a_prime[p]))div = divisors(a)for d in div:all_divisors.add(d)P = [val for val in pre if val!=0][::-1]n = len(P)p = [P[0]]prod = P[0]for i in range(1,n):p.append(P[i])prod *= P[i]if M < prod:breakelse:exit(print(-1))k = len(p)S = [[] for i in range(k)]for a in A:for i in range(k):if a%p[i]:S[i].append(a)breakprint(k)for i in range(k):S[i] = [len(S[i])] + S[i]print(*S[i])