为了账号安全,请及时绑定邮箱和手机立即绑定

函数作业问题

函数作业问题

C++
哔哔one 2018-07-16 11:23:31
以下作业题,请各位帮忙指点,因刚学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;
}


查看完整回答
反对 回复 2018-07-27
  • 1 回答
  • 0 关注
  • 685 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信