编写一个程序exp1.cpp,求1-n的素数个数,在主函数中输入n,并输出所用时间
时间: 2024-09-21 22:10:46 浏览: 42
编写一个简单的C++程序`exp1.cpp`,用于计算1到n之间的素数个数,首先需要了解如何判断一个数是否为素数。下面是一个基本的实现:
```cpp
#include <iostream>
#include <chrono> // 引入计时库
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; ++i) { // 只需检查到根号即可
if (num % i == 0)
return false;
}
return true;
}
int count_primes(int n) {
int prime_count = 0;
for (int i = 2; i <= n; ++i) {
if (is_prime(i))
prime_count++;
}
return prime_count;
}
int main() {
int n;
std::cout << "请输入一个正整数n: ";
std::cin >> n;
auto start_time = std::chrono::high_resolution_clock::now(); // 开始计时
int primes = count_primes(n);
auto end_time = std::chrono::high_resolution_clock::now(); // 结束计时
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time);
std::cout << "1到" << n << "内的素数个数为: " << primes << std::endl;
std::cout << "计算耗时: " << duration.count() << " 微秒" << std::endl;
return 0;
}
```
在这个程序中,我们首先定义了一个辅助函数`is_prime`来判断一个数是否是素数,然后在`count_primes`函数中遍历并计数1到n之间的素数。主函数中获取用户输入的n值,记录开始和结束时间,计算并输出结果以及所用的时间。
阅读全文