C语言怎么把200以内的所有素数存放在一堆数组中并输出
把200以内的所有素数存放到一维数组中并输出输入用例 无
输出用例 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
#include "stdio.h" int main() { int a[100],n=0; for (int i=0;i<=200;i++) { int flag=1; for (int j=2;j<i;j++) { if (i%j==0) { flag=0; } } if ((flag==1)&&(i!=1)) { a[n++]=i; } } printf("200内素数有%d个:\n",n); for(int i=0;i<n;i++){ printf("%4d",a[i]); } printf("\n"); }
#include <stdio.h> #define UPPER_LIMIT 200 int array[UPPER_LIMIT+1] = {0}; void main() { int i, j; for (i=2; i*i<UPPER_LIMIT; i++) { if (array[i] == 0) { for (j=i*i; j<=UPPER_LIMIT; j+=i) { array[j]++; } } } for (i=2; i<=UPPER_LIMIT; i++) { if (array[i] == 0) { printf("%d ", i); } } }
#include <stdio.h> int main() { int a[200]; int i, j, n = 0, c = 0;//c为计数器,计算符合条件的数组个数 for (i = 2; i <= 200; i++) { int flag = 1;//标记 for (j = 2; j < i; j++) { if (i % j == 0) { flag = 0; } } if (flag == 1) { a[n] = i; n += 1; c += 1; } } for (n = 0; n < c; n++) { printf("%d ", a[n]); } }
/*构造素数表*/ #include<stdio.h> int main() { const int maxnumber=200; int isprime[maxnumber]; int i; int x; for(i=0;i<maxnumber;i++) { isprime[i]=1; } for(x=2;x<maxnumber;x++) { if(isprime[x]) { for(i=2;i*x<maxnumber;i++) { isprime[i*x]=0; } } } for(i=2;i<maxnumber;i++) { if(isprime[i]) { printf("%d\t",i); } } printf("\n"); return 0; }
[此贴子已经被作者于2021-11-14 15:05编辑过]