結果

問題 No.826 連絡網
ユーザー むらためむらため
提出日時 2019-05-20 14:11:52
言語 Nim
(2.2.0)
結果
WA  
実行時間 -
コード長 742 bytes
コンパイル時間 6,842 ms
コンパイル使用メモリ 247,140 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-02 03:38:59
合計ジャッジ時間 7,793 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 WA * 1
other AC * 30
権限があれば一括ダウンロードができます
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 8) Warning: imported and not used: 'sequtils' [UnusedImport]

ソースコード

diff #

import sequtils,math

proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "<stdio.h>" ,discardable.}
proc scan(): int =
  while true:
    let k = getchar_unlocked()
    if k < '0': return
    result = 10 * result + k.ord - '0'.ord
proc getIsNotPrimes(n:int) :seq[bool] = # [0...n] O(n loglog n)
  result = newSeq[bool](n+1)
  result[0] = true
  result[1] = true
  for i in countup(2,n.float.sqrt.int):
    if result[i]: continue
    for j in countup(i*2,n,i):
      result[j] = true
const isNotPrimes = getIsNotPrimes(1000_010)
let n = scan()
let p = scan()
if p == 1 : quit "1",0
if p >= n div 2 and not isNotPrimes[p]: quit "1",0
var ans = n div 2 - 1
for i in countup(n div 2 + 1,n):
  if isNotPrimes[i] : ans += 1
echo ans
0