結果

問題 No.648  お や す み 
コンテスト
ユーザー ciel
提出日時 2017-09-18 16:09:01
言語 C(gnu17)
(gcc 15.2.0)
コンパイル:
gcc-15 -O2 -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 393 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 196 ms
コンパイル使用メモリ 39,104 KB
最終ジャッジ日時 2026-02-22 00:16:13
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 84
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

//Rubyだけのテストだと不評を買いそうで.

#include <stdio.h>
long long isqrt(__int128_t n){
  if(n<=0)return 0;
  if(n<4)return 1;
  __int128_t x=0,y=n;
  for(;x!=y&&x+1!=y;)x=y,y=(n/y+y)/2;
  return (long long)x;
}
int main(){
  long long n;
  scanf("%lld",&n);
  __int128_t x=(__int128_t)n*8+1,q=isqrt(x);
  if(q*q!=x||q%2==0)puts("NO");
  else printf("YES\n%lld\n",q-1>>1);
}
0