问题:
从M开始找到第n个质数;
例如输入: 4 3
输出:5 7 11
分析:
问题的关键在于素数的判断。
想法:先定义一个函数判断一个数是否为素数,通过for循环判断(只能被1和本身整除的数);再构造一个递归函数,功能是找出从m开始(包含m)的n个素数。递归函数中调用判定素数函数,若一个数是素数的话,输出到控制台上,同时素数数量减1,本身加1,接着往下找。
代码:
#include<iostream>
using namespace std;
bool flag = true; //初始化为true
bool judge(int m) //布尔类型,判定是否是素数,素数为true,非素数为false
{
if (m <= 1) //最小素数为2,
flag = false;
else if (m == 2)
flag = true;
else if (m > 2) //素数定义来判断是否为素数
{
for (int i = 2; i < m; i++)//循环判断是否为素数
{
if (m % i == 0)
{
flag = false;
break; //非素数直接退出本层循环,不再进行以后的判断
}
else
flag = true;