File: is_prime.cpp

package info (click to toggle)
ctre 3.9.0%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 5,084 kB
  • sloc: cpp: 80,452; makefile: 135; javascript: 69; python: 31
file content (23 lines) | stat: -rw-r--r-- 637 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <ctre.hpp>

static constexpr auto pattern = ctll::fixed_string(".?|(..+?)\\g{1}+");

constexpr bool is_prime(std::string_view input) {
	return !ctre::match<pattern>(input);
}

int main()
{
	static_assert(!is_prime(""));
	static_assert(!is_prime("a"));
	static_assert( is_prime("aa"));
	static_assert( is_prime("aaa"));
	static_assert(!is_prime("aaaa"));
	static_assert( is_prime("aaaaa"));
	static_assert(!is_prime("aaaaaa"));
	static_assert( is_prime("aaaaaaa"));
	static_assert(!is_prime("aaaaaaaa"));
	static_assert(!is_prime("aaaaaaaaa"));
	static_assert(!is_prime("aaaaaaaaaa"));
	static_assert( is_prime("aaaaaaaaaaa"));
}