結果
問題 | No.1871 divisXor |
ユーザー |
![]() |
提出日時 | 2022-03-11 22:04:41 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 40 ms / 2,000 ms |
コード長 | 523 bytes |
コンパイル時間 | 371 ms |
コンパイル使用メモリ | 82,300 KB |
実行使用メモリ | 54,264 KB |
最終ジャッジ日時 | 2024-09-22 12:57:44 |
合計ジャッジ時間 | 4,139 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 29 |
ソースコード
""" 存在しそうだな~ 約数の個数のXORがN bitごとに作れればok 素数k個の積は、2^k である。 2 3 5 7 約数の総和か… 1 = 1 = 1 2 = 1+2 = 3 = 11 4 = 1+2+4 = 7 = 111 8 = = 1111 """ import sys from sys import stdin import heapq N = int(stdin.readline()) if N == 0: print (-1) sys.exit() now = 0 ans = [] for i in range(60,-1,-1): if 2**i & N != 2**i & now: ans.append( 2**i ) now ^= 2**(i+1)-1 print (len(ans)) print (*ans)