用c语言输出m到n间的所有素数并求和
时间: 2024-05-01 18:21:46 浏览: 15
以下是用C语言输出m到n间的所有素数并求和的代码实现:
```
#include <stdio.h>
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;
}
int main() {
int m, n, sum = 0;
printf("请输入m和n:");
scanf("%d%d", &m, &n);
printf("%d到%d间的素数有:\n", m, n);
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
sum += i;
}
}
printf("\n素数的和为:%d\n", sum);
return 0;
}
```
代码中使用了一个判断一个数是否为素数的函数 `is_prime`,然后在主函数中遍历m到n间的所有数,如果是素数则输出并累加和。
相关问题
用c语言输出 1-100之间所有素数,并求和的
以下是解答:
```
#include <stdio.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (is_prime(i)) {
printf("%d ", i);
sum += i;
}
}
printf("\nsum = %d\n", sum);
return 0;
}
```
本程序中用到了一个函数 `is_prime`,它的作用是判断一个数是否为素数。为了判断一个数 `n` 是否为素数,只需要从 2 到 $\sqrt{n}$ 都不能整除 `n`,那么 `n` 就是素数。
c语言求正整数M和N区间内素数的个数并对它们求和
这里提供两种C语言的求正整数M和N区间内素数的个数并对它们求和的方法:
方法一:嵌套循环法
```
#include <stdio.h>
int main() {
int M,N;
int i,n;
int digit=0,sum=0,check=1; //当check ==1时n是素数;n==0时n时不是素数
scanf("%d %d",&M,&N);
for(n=M;n<=N;n++){
check=1; //重置素数标识
for(i=2;i<n;i++){
if(n%i==0){
check=0;
break;
}
}
if(check==1&&n!=1){ //1既不是素数也不是合数
digit++;
sum=sum+n;
}
}
printf("digit=%d,sum=%d",digit,sum);
return 0;
}
```
方法二:筛选法
```
#include <stdio.h>
int main() {
int a,b,i,j,sum=0,num=0;
scanf("%d %d",&a,&b);
int prime[b+1];
for(i=2;i<=b;i++){
prime[i]=1;
}
for(i=2;i*i<=b;i++){
if(prime[i]==1){
for(j=i*i;j<=b;j+=i){
prime[j]=0;
}
}
}
for(i=a;i<=b;i++){
if(prime[i]==1){
num++;
sum=sum+i;
}
}
printf("%d %d\n",num,sum);
return 0;
}
```