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++
#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区间内素数的个数并求和的主要内容,如果未能解决你的问题,请参考以下文章