自行编写c语言代码实现求n从1-100时,n的和,1/n的和,素数的个数。
时间: 2024-10-24 18:13:04 浏览: 35
最新 计算机三级网络 南开100题
在C语言中,我们可以分别编写三个函数来计算n从1到100的和、1/n的累加和以及素数的数量。以下是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 函数计算1到n的整数和
int sum_of_n(int n) {
int total = 0;
for (int i = 1; i <= n; i++) {
total += i;
}
return total;
}
// 函数计算1到n的倒数和,这里采用高精度计算避免浮点误差
double sum_of_reciprocals(int n) {
double reciprocal_sum = 0.0;
for (int i = 1; i <= n; i++) {
if (i != 0) { // 避免除以零
reciprocal_sum += 1.0 / (double)i;
}
}
return reciprocal_sum;
}
// 判断是否为素数
int is_prime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0; // 如果能被整除,不是素数
}
}
return 1; // 否则是素数
}
// 计算1到100的素数个数
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 = 100;
printf("Sum of numbers from 1 to %d: %d\n", n, sum_of_n(n));
printf("Sum of reciprocals from 1 to %d (approximate): %.4f\n", n, sum_of_reciprocals(n));
int primes_in_100 = count_primes(n);
printf("Number of primes between 1 and %d: %d\n", n, primes_in_100);
return 0;
}
```
在这个程序中,我们首先定义了三个辅助函数:`sum_of_n`用于计算整数和,`sum_of_reciprocals`用于计算1/n的和(通过高精度计算),`is_prime`用于判断是否是素数,然后在主函数`main`中计算并输出结果。
阅读全文