C语言要求统计给定整数M和N区间内素数的个数并求和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言要求统计给定整数M和N区间内素数的个数并求和相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
int isprime(int n)
 for(int i=2; i*i<=n; i++)
    if(n%i==0)return 0;
  return n>1;

int main()
 int m,n,k=0,s=0,i;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i++)
    if(isprime(i))
k++;
 s+=i;

  printf("个数=%d\\n总和=%d\\n",k,s);
  return 0;

追问

我用的是c++ 这个好像运行不出来

追答

拍个照?有什么问题?
我用的就是DEV C++

参考技术A #include<stdio.h>
#include<math.h>

int is_prime(int u)

if(u == 0 || u == 1)
return 0;
if(u == 2)
return 1;
if(u%2 == 0)
return 0;
for(int i=3;i <= sqrt((float)u);i+=2)
if(u%i == 0)
return 0;
return 1;


int main()

int total=0,sum=0;
int M,N;
scanf("%d%d",&M,&N);
for(;M<=N;M++)

if(is_prime(M))

total++;
sum+=M;


printf("total=%d\nsum=%d",total,sum);
return 0;
参考技术B 不知道你要问什么?呵呵。。。。

Python练习题4.2统计素数并求和

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

m,n = map(int,input().split(" "))

sum = 0
value = 0
for i in range(m,n+1):
    if i == 1  :
        continue
    v = True
    for j in range(2,i):
        if i%j == 0:
            v = False
            break
    if v :
       sum += i
       value += 1
print(value,sum)

本程序不难,要注意临界值1的判断,1不是素数。

在做类似于这种类型的筛选题,都可以加两个变量sum和value,根据筛选结果修改这两个的值,后面做输出即可。

今天发现了一个问题,那个答题不太稳定,同样的代码有时候提交答案都是对的,有时候就出现部分错误或者就是无返回值之类的,等会就行。或者仔细查看自己的代码。


读书和健身总有一个在路上

以上是关于C语言要求统计给定整数M和N区间内素数的个数并求和的主要内容,如果未能解决你的问题,请参考以下文章

C语言中判断N个数中的素数并求和

统计区间内素数求和

C语言求助,《求m和n之间的所有素数》

吉比特_笔试_区间内素数个数

区间内素数的个数

素数求和问题