3097 - 2003年秋浙江省计算机等级考试二级C 编程题(2)
时间限制 : 1 秒
内存限制 : 128 MB
输入两个正整数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; }