結果
| 問題 | 
                            No.1514 Squared Matching
                             | 
                    
| コンテスト | |
| ユーザー | 
                             だれ
                         | 
                    
| 提出日時 | 2021-04-25 17:18:05 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 1,605 ms / 4,000 ms | 
| コード長 | 777 bytes | 
| コンパイル時間 | 196 ms | 
| コンパイル使用メモリ | 81,908 KB | 
| 実行使用メモリ | 450,528 KB | 
| 最終ジャッジ日時 | 2024-07-17 21:37:22 | 
| 合計ジャッジ時間 | 26,330 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 26 | 
ソースコード
from math import floor, sqrt
def main(n):
    ans = 0
    prime = [True] * (7500)
    x = [i for i in range(n + 1)]
    for i in range(4, 7500, 2):
        prime[i] = False
    j = 4
    while j <= n:
        k = j
        while k <= n:
            x[k] >>= 2
            k += j
        j *= 4
    i = 3
    while i * i < n:
        if prime[i]:
            w = i * i
            j = w
            while j * j <= n:
                prime[j] = False
                j += 2 * i
            j = w
            while j <= n:
                k = j
                while k <= n:
                    x[k] //= w
                    k += j
                j *= w
        i += 2
    for i in range(1, n + 1):
        ans += floor(sqrt(n / x[i]))
    print(ans)
n = int(input())
main(n)
            
            
            
        
            
だれ