数组的应用!!
求大于m并且紧跟m的n个素数,并存入数组中,输出。
[此贴子已经被作者于2020-11-24 17:08编辑过]
#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"); }
#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); }