/*请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。 例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。注意:n的值要大于2但不大于1000。部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/ #include<stdio.h> #include<stdlib.h> #include<math.h> double fun(int n)
时间: 2024-03-24 10:36:39 浏览: 19
```c
double fun(int n)
{
int i, j, flag;
double sum = 0;
for (i = 3; i <= n; i++)
{
flag = 1;
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
sum += sqrt(i);
}
}
return sum;
}
```
相关问题
请编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有素数的平方根之和。
以下是函数fun的实现代码:
```python
import math
def is_prime(num):
if num < 2:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
def fun(n):
total = 0
for i in range(3, n + 1):
if is_prime(i):
total += math.sqrt(i)
print(total)
```
函数中用到了两个辅助函数,is_prime函数用于判断一个数是否为素数,fun函数则计算并输出所有素数的平方根之和。
C语言:请编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有素数的平方根之和。
以下是函数fun的C语言实现代码:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int num){
if(num < 2){
return 0;
}
for(int i = 2; i <= sqrt(num); i++){
if(num % i == 0){
return 0;
}
}
return 1;
}
void fun(int n){
double total = 0;
for(int i = 3; i <= n; i++){
if(is_prime(i)){
total += sqrt(i);
}
}
printf("%.2lf\n", total);
}
```
函数中用到了两个辅助函数,is_prime函数用于判断一个数是否为素数,fun函数则计算并输出所有素数的平方根之和。