以下作业题,请各位帮忙指点,因刚学c++,请各位老师在程序尽量多些注释说明。谢谢!正整数n是素数,如果它只能由1和本身整除。(1)写一个名为ISPrime的C++函数,它取正整数参数,如果参数为Prime,则返回true,否则返回false。假设参数大于1(2)写一个C++函数,名为SUFFPrimes,取正整数参数n,并返回第一N素数的和。例如,SUFFPrimes(6)必须返回41,这是前6个素数的总和:2+3+5+7+11+13=41。您必须使用在部分(1)中定义的ISPrime函数来定义函数SUFFPROMES。原题:A positive integer number n is prime if it is divisible by ONLY 1 anditself.a. Write a C++ function named isPrime that takes a positiveinteger argument and returns true if the argument is prime and returnsfalse otherwis。 Assume the argument is greater than 1. b.Write a C++ function named sumOfPrimes that takes a positive integerargument n and returns the sum of the first n prime numbers. For example,sumOfPrimes(6) must return 41 , which is the sum of the first 6 prime numbers:2+3+5+7+11+13 = 41. You must use the isPrime function you defined in part (a) to define the function sumOfPrimes.
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
第一题
#include <stdio.h> #include <iostream> using namespace std; bool ISPrime(const int & num) { if(num <=1) { return false; } int i = 2; //素数就是指 因子只有自己和1 //i 从二开始 //用num除以i,若是可以除尽,且i小于num 就说明num 存在别的因子 //所以num就不是素数 for(i = 2; i < num; ++i) { if(num % i == 0) { break; //若可以除尽,就跳出循环 } } if(i == num) { return true; //如果出循环且i值已经等于num //说明是素数 } return false; //否则不是素数 } int main() { int n = 19; bool ret = ISPrime(n); if(ret) { printf("Is Prime\n"); } else { printf("Not Prime\n"); } return 0; }
第二题
#include <stdio.h> #include <iostream> using namespace std; int SUFFPrime(const int & n) { int sum = 0; if(n <= 0) { return sum; } int i = 2; int count = 0; int num = 2; //素数就是指 因子只有自己和1 //i 从二开始 //用num除以i,若是可以除尽,且i小于num 就说明num 存在别的因子 //所以num就不是素数 //外层循环用来控制个数,个数应该小于 n //内层循环用来判断当前数字是不是素数 while(count < n) { for(i = 2;i < num ; ++i) { if(num % i == 0) { break; //若可以除尽,就跳出循环 } } if(i == num) { //如果出循环且i值已经等于num //说明是素数 count++; sum += num; } //否则不是素数 //就看下一个数是不是素数 num++; } return sum; } int main() { int n = 7; int sum = SUFFPrime(n); printf("sum: %d\n",sum); return 0; }
- 1 回答
- 0 关注
- 740 浏览
添加回答
举报
0/150
提交
取消