結果

問題 No.312 置換処理
ユーザー Min_25Min_25
提出日時 2015-12-05 08:39:27
言語 C++11
(gcc 11.4.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 772 bytes
コンパイル時間 471 ms
コンパイル使用メモリ 56,756 KB
最終ジャッジ日時 2024-11-14 19:30:03
合計ジャッジ時間 1,173 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp: In function ‘void solve()’:
main.cpp:23:14: error: ‘sqrt’ was not declared in this scope; did you mean ‘sq’?
   23 |     int sq = sqrt(n);
      |              ^~~~
      |              sq

ソースコード

diff #

#include <cstdio>
#include <cassert>
#include <ctime>

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <utility>

#define rep(i, n) for (int i = 0; i < int(n); ++i)
#define rep3(i, m, n) for (int i = int(m); i < int(n); ++i)

using namespace std;
using uint64 = unsigned long long;
using uint32 = unsigned;

uint64 divisors[30000];

void solve() {
  uint64 n;
  while (~scanf("%llu", &n)) {
    int sq = sqrt(n);
    int idx = 0;
    rep3(d, 1, sq + 1) if (n % d == 0) {
      divisors[idx++] = d;
      if (uint64(d) * d != n) divisors[idx++] = n / d;
    }
    sort(divisors, divisors + idx);
    rep(i, idx) if (divisors[i] > 2) {
      printf("%llu\n", divisors[i]);
      break;
    }
  }
}

int main() {
  solve();
  return 0;
}
0