注册 登录
编程论坛 C语言论坛

C语言怎么把200以内的所有素数存放在一堆数组中并输出

zyn996 发布于 2021-11-14 00:40, 4038 次点击
把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
6 回复
#2
zyn9962021-11-14 00:41
回复 楼主 zyn996
求求了,实在想不出来,有注释更好!好人一生平安
#3
baolis2021-11-14 00:54
200内素数有47个:
    0    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

进程已结束,退出代码为 0
#4
baolis2021-11-14 00:59
程序代码:
#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");
}
#5
diycai2021-11-14 08:59
程序代码:
#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);
        }
    }
}

这个程序算个几千万以内的素数没压力。
#6
Hhu_TF2021-11-14 13:05
回复 楼主 zyn996
程序代码:
#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]);
    }
}
#7
白白白小白2021-11-14 15:02
程序代码:
/*构造素数表*/
#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编辑过]

1