给你一个数值m,找出所有大于m且是素数的k个数值
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int judge(int n) //函数也可以返回bool类型,其实都一样
{
if(n == 1) return 0;
for(int i = 2;i <= sqrt(n);i ++)
if(n % i == 0) return 0;
return 1;
}
void fun(int m,int k,int xx[])
{
for(int i = 0,j = m + 1;i < k;j ++)
if(judge(j)) xx[i ++] = j;
// for (int i = 0; i < k; i ++ ) printf("%d ",xx[i]);
}
int main()
{
int m,k,xx[20]={0};
scanf("%d %d", &m, &k);
fun(m,k,xx);
return 0;
}
合并写法:
void fun(int m,int k,int xx[])
{
for(int i = 0,j = m + 1;i < k;j ++)
{
int flag = 1;
for(int i = 2;i <= sqrt(j);i ++)
if(j % i == 0) flag = 0;
if(flag) xx[i ++] = j;
}
//for (int i = 0; i < k; i ++ ) printf("%d ",xx[i]);
}
这是其他高人写的
void fun(int m, int k, int xx[])
{
int i, n, c=0;
for (n = m + 1; c < k; n++)
{
int flag = 1;
for (i = 2; i <= sqrt(n); i++)
if (n % i == 0)
flag = 0;
if (flag) xx[c++] = n;
}
// for (int i = 0; i < k; i ++ ) printf("%d ",xx[i]);
}