/*------------------------------------------------------------------------------
(2)【程序设计】请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:输出大于整数m后的连续n个素数存入所指的数组中。例如,若输入m(17),n(5),那么输出17后面连续的5个素数。则应输出19、23、29、31、37。
------------------------------------------------------------------------------*/
#include <stdio.h>
void fun(int m,int k,int xx[])
{
/**********Program**********/
int i,j,n=0;
for(i=m+1;;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0) break;
}
if(i==j)
xx[n++]=i;
if(n==k) break;
}
/********** End **********/
}
void main()
{
int m,n,zz[1000];
printf("请输入两个整数: ");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%4d ",zz[m]);
printf("\n ");
}
本程序通过函数调用来输出大于整数m后的连续n个素数存入所指的数组中。看我们需要填写的部分,我们来找出这些素数需要利用循环,因为说大于整数m的连续n个素数(即k),所以for循环里面i=m+1,i一直自增。
利用j来遍历i的因子,看能否被整除,如果被整除则不是素数,break跳出。当i==j时,说明i是素数,则存储到xx[]中,定义的n则来表示素数的个数,当n与k相等说明已经找到n个素数,则break跳出结束循环