3097 - 2003年秋浙江省计算机等级考试二级C 编程题(2)

输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。


题目输入

m n

题目输出

素数和

输入/输出样例

题目输入

2 3

题目输出

5

C语言解答

#include<math.h>
int isPrime(int n) {
int i,flag=1;
double limit;
if(n<=1)
    flag=0;
else if(n==2)
    flag=1;
else if(n%2==0)
    flag=0;
else {
    limit=sqrt(n)+1;
for(i=3;i<=limit;i+=2) {
    if(n%i==0) {
        flag=0;
        break;
    }
  }
}
return flag;
}
int main() {
int m,i,sum,n;
sum=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;++i){
    if(isPrime(i))
        sum+=i;
}
printf("%d",sum);
return 0;
}

C++解答

#include<iostream>
#include<cmath>
using namespace std;
bool isprime(int x)	//判断素数
{
	if (x==1) return false;
	int t=sqrt(x);
	for (int i=2; i<=t; i++)
		if (x%i==0) return false;
	return true;
}
int main()
{
	int m,n,sum=0;
	cin>>m>>n;
	for (int i=m; i<=n; i++)
		if (isprime(i)) sum+=i;
	cout<<sum<<endl;
	return 0;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题