问题:
编写具有如下原型的函数:void find(int i, int n); 实现从 i 开始找起,连续找出 n 个素数并显示在屏幕上。如:实参为10 和 8 后,输出的 8 个素数应为:11,13,17,19,23,29,31,37。
代码:
#include<iostream>
#include<cmath>
using namespace std;
void find(int i, int n);
int main()
{
//i为起始数字,n为素数的个数
int i,n;
cin>>i>>n;
cout<<"数字"<<i<<"以后的"<<n<<"个素数:";
find(i,n);
return 0;
}
//输出起始数字i以后的n个素数
void find(int i, int n)
{
//n个素数
for(int m=0;m<n;)
{
//判断当前数字是否为素数
bool flag=false;
for(int j=2;j<=i/sqrt(i);j++)
{
//如果当前数字对1以及自身外的数字除余运算为0,即为合数而非素数
if(i%j==0)
{
flag=true;
break;
}
}
if(!flag)
{
cout<<i<<" ";
m++;
}
i++;
}
}
运行结果:
|