Кто хорошо разбирается в C++? Напишите программу на С++ которая выводит количество простых чисел до n. Для значения n = 10 млн программа должна вывести ответ меньше чем за 2 секунды.
Вот пример программы на C++, которая выводит количество простых чисел до заданного числа n:
#include <iostream> bool isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return false; } } return true; } int countPrimes(int n) { int count = 0; for (int i = 2; i < n; i++) { if (isPrime(i)) { count++; } } return count; } int main() { int n = 10000000; clock_t start = clock(); int result = countPrimes(n); clock_t end = clock(); double time = double(end - start) / CLOCKS_PER_SEC; std::cout << "Number of primes below " << n << ": " << result << std::endl; std::cout << "Time taken: " << time << " seconds" << std::endl; return 0; }
Эта программа проверяет каждое число от 2 до n на простоту и выводит количество простых чисел до n. Для n = 10 млн программа должна выполниться за время, удовлетворяющее вашим требованиям.
Вот пример программы на C++, которая выводит количество простых чисел до заданного числа n:
#include <iostream>bool isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int countPrimes(int n) {
int count = 0;
for (int i = 2; i < n; i++) {
if (isPrime(i)) {
count++;
}
}
return count;
}
int main() {
int n = 10000000;
clock_t start = clock();
int result = countPrimes(n);
clock_t end = clock();
double time = double(end - start) / CLOCKS_PER_SEC;
std::cout << "Number of primes below " << n << ": " << result << std::endl;
std::cout << "Time taken: " << time << " seconds" << std::endl;
return 0;
}
Эта программа проверяет каждое число от 2 до n на простоту и выводит количество простых чисел до n. Для n = 10 млн программа должна выполниться за время, удовлетворяющее вашим требованиям.