Срок выполнения задания:
Написать прототип библиотеки для работы с простыми (prime) числами и модульные тесты с использованием фреймворка Googletest (не менее 10 штук)
Состав проекта
- bool checkPrime(uint64_t value) - проверка числа на простоту.
- uint64_t nPrime(uint64_t n) - нахождение n-ого простого числа (в ряду).
- uint64_t nextPrime(uint64_t value) - нахождение ближайшего следующего простого числа к value.
- uint64_t sumPrime(uint64_t hbound) - сумма всех чисел до hbound (не включая его)
Требуется написать несколько функций на языках С/С++, выполняющих поставленные задачи и протестировать работу этих функций с помощью модульных тестов
Функции должны иметь заданную сигнатуру и располагаться в файле alg.cpp:
bool checkPrime(uint64_t value) {
}
- value - проверяемое значение
Функция возвращает true, если число value простое и false в противном случае.
uint64_t nPrime(uint64_t n) {
}
- n - n-ое число в ряду. Например, 2 - первое простое число, 3 - второе, 5 - третье...
Функция возвращает найденное простое число.
uint64_t nextPrime(uint64_t value) {
}
- value - исходное число, начиная с которого мы ищем ближайшее простое. Само value при поиске не учитывается. Например, для числа 4 следующим простым будет 5, а для 11 следующим простым будет 13.
Функция возвращает найденное простое число.
uint64_t sumPrime(uint64_t hbound) {
}
Функция находит сумму простых чисел до hbound (сама граница в сумму не включается)
Функция возвращает сумму простых чисел.
Функции должны располагаться в файле src/alg.cpp.
Найти сумму всех простых чисел, меньше двух миллионов.
Написать модульный тест для проверки решения этой задачи
Тесты размещаются в файле test/tests.cpp