数组的应用!!
求大于m并且紧跟m的n个素数,并存入数组中,输出。
2020-11-24 16:13
[此贴子已经被作者于2020-11-24 17:08编辑过]

2020-11-24 17:04
程序代码:
#include<stdio.h>
void main()
{
int m; // 给出素数的左边界
int n,s = 0;
int i, j, k = 0;
scanf("%d%d", &m, &n);
int p[n]; // VS2015好像不支持变长数组,为此这里可设为 10000 (根据 n 值来设就行)
for (i = m;i < 100000000;i++) // 不可以 m + n 作为右边界,因为其中的数不一定就是素数
{
for (j = 2;j < 100000000;j++)
{
if (i % j == 0)
break;
}
if (i == j)
{
p[s] = i; // 求得素数,存入数组
s++;
k++;
}
if (n == k)
break;
}
printf("\n");
for (i = 0;i < n;i++) // 此时数组的右边界是确定的
printf("%d ",p[i]);
printf("\n");
}
2020-11-25 00:20
程序代码:#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
unsigned int m,n,*p,count=0,j,k;
scanf("%d %d",&m,&n);
p=(unsigned int *)malloc(n*sizeof(unsigned int));
while(count<n)
{
++m;
k=(int)sqrt(m);
for(j=2;j<=k;j++)
if(m%j==0)
break;
if(j>k)
{
*(p+count)=m;
++count;
}
}
for(j=0;j<n;j++) // 此时数组的右边界是确定的
printf("%d ",p[j]);
printf("\n");
free(p);
}

2020-11-25 14:52