cp-library

競技プログラミング用 C++ ライブラリ

View the Project on GitHub qandori/cp-library

:heavy_check_mark: 素数判定(軽量版)

math/is_prime_light.hpp · GitHub で見る

64 KiBサイト · 軽量実装

この項目の軽量実装は light_is_prime です。以下の使用例・API一覧は共有ヘッダーの説明です。

#include "lib/math/is_prime_light.hpp"

bool a = light_is_prime(97); // true
bool b = light_is_prime(1); // false
操作 内容・返り値 計算量
light_is_prime(n) std::uint64_t 型の n が素数なら true、それ以外は false を返す \(O(\log n)\)

64 bit 符号なし整数の全域を決定的に判定します。0 と 1 は false、2 は true です。is_prime.hpp と同時に include できます。

ある上限までの素数を全て列挙する場合は素数篩を使えます。

時間は \(O(\log n)\)、追加空間は \(O(1)\) です。

依存ライブラリ

検証コード

コード

#ifndef IS_PRIME_LIGHT_HPP
#define IS_PRIME_LIGHT_HPP

#include "../components/is_prime_core.hpp"

inline bool light_is_prime(std::uint64_t n) {
	return is_prime_detail::check(n, [](const auto &m) { return is_prime_detail::prime(m); });
}

#endif
Back to top page