Administrator
发布于 2024-12-22 / 37 阅读
0
0

C语言求200以内的所有素数

把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"
// 主函数,程序的入口点
void main() {
    // 定义整型变量 i、m、j、k,用于循环控制和其他计数等操作
    int i, m, j, k;
    // 定义一个可以容纳200个整数的数组 a,用于存储找到的数
    int a[200];
    // 初始化变量 k 为 0,k 后续用于记录数组 a 中有效元素的个数
    k = 0;
    // 外层循环,从199开始递减,到2结束(大于1的条件),尝试对每个数进行判断
    for (m = 199; m > 1; m--) {
        // 内层循环,从2开始到小于当前要判断的数 m 为止,用于判断 m 是否能被其他数整除
        for (i = 2; i < m; i++) {
            // 如果 m 能被 i 整除(即余数为0),说明 m 不是质数,直接跳出内层循环
            if (m % i == 0) break;
        }
        // 如果内层循环正常结束(即 i 的值达到了 m,说明从2到m - 1都不能整除 m),则 m 是质数
        if (i >= m)
            // 将找到的质数 m 存入数组 a 中,并将记录有效元素个数的 k 自增1
            a[k++] = m;

    }
    // 循环遍历数组 a 中存储的质数,从后往前输出(因为是按照从大到小找到并存入的)
    for (j = k - 1; j >= 0; j--)
        // 输出数组 a 中每个质数元素,每个数后面跟一个空格用于分隔
        printf("%d ", a[j]);
}


评论