实现传统方法求素数:编写一个程序primer_pro1.c,使用暴力计算法计算30000000到30000200之间的所有素数,并输出这些素数。运行10次primer_pro1,记录每次运行的时间,并计算平均运行时间。
时间: 2024-03-02 12:53:25 浏览: 132
好的,我明白了你的要求。以下是primer_pro1.c程序代码:
```c
#include <stdio.h>
#include <time.h>
int is_prime(int n){
if(n < 2){
return 0;
}
int i;
for(i = 2; i*i <= n; i++){
if(n % i == 0){
return 0;
}
}
return 1;
}
int main(){
int start = 30000000, end = 30000200;
clock_t begin = clock(); // 记录开始时间
int count = 0;
for(int i = start; i <= end; i++){
if(is_prime(i)){
printf("%d ", i);
count++;
}
}
printf("\n");
clock_t end_time = clock(); // 记录结束时间
printf("共计%d个素数\n", count);
printf("程序运行时间:%f秒\n", (double)(end_time - begin) / CLOCKS_PER_SEC);
return 0;
}
```
运行10次primer_pro1,记录每次运行的时间,并计算平均运行时间,可以采用如下的shell脚本:
```shell
#!/bin/bash
total_time=0
for i in {1..10}
do
echo "第 $i 次运行:"
time=`./primer_pro1`
echo "$time"
total_time=`echo $total_time + $time | bc`
done
echo "平均运行时间:"
echo "$total_time / 10" | bc -l
```
其中,bc命令用于进行浮点数计算。将上述两段代码保存到同一目录下,并运行shell脚本即可得到输出结果。
阅读全文