输出 2~n之间所有素数,并求和,n由键盘输入。素数是只能被1和自身整除的整数。要求编写函数判断自然数x是否为素数,函数原型为: int isprime(unsigned int x); //x是素数返回1,不是素数返回0。
时间: 2023-05-01 16:02:45 浏览: 120
题目描述:输入2到n之间所有素数,并求和,n由键盘输入。素数是只能被1和自身整除的整数。要求编写函数判断自然数x是否为素数,函数原型为:int isprime(unsigned int x); //x是素数返回1,不是素数返回0。
解题思路:从2开始到n遍历每个数,判断它是否为素数,若是累加和并输出。判断素数可以用循环判断能否被2至x-1中的任意一个数整除,若可以则不是素数,否则是素数。
代码如下:
```python
#include <stdio.h>
int isprime(unsigned int x); //函数的声明
int main()
{
int n, sum = 0;
printf("请输入一个大于等于2的自然数:");
scanf("%d", &n);
for(int i = 2; i <= n; i++)
{
if(isprime(i)) //判断i是否为素数
{
printf("%d ", i); //输出素数
sum += i; //累加素数
}
}
printf("\n2到%d之间素数的和为:%d\n", n, sum); //输出素数的和
return 0;
}
int isprime(unsigned int x)
{
for(int i = 2; i < x; i++)
{
if(x % i == 0) //若i能整除x,则x不是素数
{
return 0;
}
}
return 1; //否则x是素数
}
```
阅读全文