3097 - 2003年秋浙江省计算机等级考试二级C 编程题(2)
输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
Input
m n
Output
素数和
Examples
Input
2 3
Output
5
Solution 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; }
Solution 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; }