c语言怎么去素数

要使用C语言去除素数,可以按照以下步骤进行:,1、输入一个整数n。,2、初始化一个布尔数组isPrime[0…n],用于标记每个数字是否为素数,将isPrime[i]设置为true表示数字i是素数,false表示不是素数。,3、设置isPrime[0]和isPrime[1]为false,因为0和1不是素数。,4、从2开始遍历到n的平方根(包括),对于每个数字i,执行以下操作:,如果isPrime[i]为true,则将其所有的倍数标记为非素数,即如果j是i的倍数,将isPrime[j]设置为false。,5、遍历从2到n的数字,如果isPrime[i]为true,则打印出该数字。,以下是相应的C语言代码实现:,请注意,上述代码中定义了一个常量
MAX_NUM来限制输入的最大数值范围,你可以根据需要调整该值。,
,#include <stdio.h> #include <math.h> #include <stdbool.h> #define MAX_NUM 1000 // 定义最大数值范围 int main() { int n; bool isPrime[MAX_NUM + 1]; // 布尔数组,用于标记是否为素数 // 初始化数组为true(素数)或false(非素数) for (int i = 0; i <= MAX_NUM; i++) { isPrime[i] = true; } isPrime[0] = false; isPrime[1] = false; printf(“请输入一个整数:”); scanf(“%d”, &n); // 标记非素数的倍数 for (int i = 2; i <= sqrt(n); i++) { if (isPrime[i]) { for (int j = i * i; j <= n; j += i) { isPrime[j] = false; } } } // 输出素数 printf(“小于等于%d的素数有: “, n); for (int i = 2; i <= n; i++) { if (isPrime[i]) { printf(“%d “, i); } } printf(” “); return 0; },

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《c语言怎么去素数》
文章链接:https://zhuji.vsping.com/468590.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。