結果
問題 | No.1653 Squarefree |
ユーザー |
![]() |
提出日時 | 2021-08-21 17:33:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 728 ms / 2,000 ms |
コード長 | 1,255 bytes |
コンパイル時間 | 190 ms |
コンパイル使用メモリ | 82,688 KB |
実行使用メモリ | 85,020 KB |
最終ジャッジ日時 | 2024-10-15 08:12:15 |
合計ジャッジ時間 | 18,721 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
ソースコード
mod = 1000000007 eps = 10**-9 def main(): import sys from math import sqrt input = sys.stdin.readline N = 10 ** 6 L, R = map(int, input().split()) A = list(range(L, R+1)) for d in range(2, N+1): xl = (L - 1) // d + 1 xr = R // d for x in range(xl, xr + 1): m = A[d * x - L] if m != -1: if m % (d**2) == 0: A[d*x - L] = -1 else: if m % d == 0: A[d * x - L] //= d ans = 0 for m_ in range(L, R+1): if A[m_ - L] == -1: continue ans += 1 m = A[m_ - L] if m != 1: mm = int(sqrt(m)) for j in range(-2, 3): if mm + j > 0: if (mm + j) ** 2 == m: if mm + j > N: ans -= 1 print(ans) """ # guchoku cnt = 0 ok = [0] * (R - L + 1) for i in range(L, R+1): flg = 1 for d in range(2, 101): if i % (d**2) == 0: flg = 0 break cnt += flg if flg: ok[i - L] = 1 print(cnt) """ if __name__ == '__main__': main()