C语言求素数代码详解与优化
以下是C语言代码,用于求解小于等于输入整数的所有素数。
#include <stdio.h>
int main() {
int n, i, j, isPrime;
printf('请输入一个整数:');
scanf('%d', &n);
printf('小于等于%d的素数有:\n', n);
// 从2开始遍历到n,判断每个数是否是素数
for (i = 2; i <= n; i++) {
isPrime = 1; // 假设i是一个素数
// 判断i是否能被小于i的数整除,如果能则不是素数
for (j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0; // i不是素数
break;
}
}
if (isPrime == 1) {
printf('%d ', i);
}
}
printf('\n');
return 0;
}
需要注意的是,本算法并不是最优解。在判断一个数是否为素数时,可以只判断小于等于它平方根的数即可。这样可以减少不必要的计算。
原文地址: https://www.cveoy.top/t/topic/m0VC 著作权归作者所有。请勿转载和采集!