C语言查找素数:高效算法及代码示例
C语言查找素数:高效算法及代码示例
本文将介绍如何使用C语言编写程序,查找并打印小于或等于给定正整数n的所有素数。
什么是素数?
素数是指大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。例如,2、3、5、7、11都是素数。
C语言代码实现
以下是使用C语言查找素数的程序代码:c#include <stdio.h>
// 判断一个数是否为素数int isPrime(int num) { if (num <= 1) { return 0; }
// 优化循环次数,只需检查到平方根 for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; } }
return 1; }
// 打印小于等于n的所有素数void displayPrimes(int n) { printf('小于或等于 %d 的所有素数为:', n);
for (int i = 2; i <= n; i++) { if (isPrime(i)) { printf('%d ', i); } }
printf('
');}
int main() { int n;
printf('请输入一个正整数: '); scanf('%d', &n);
displayPrimes(n);
return 0;}
代码解析
-
isPrime(int num)函数: - 接收一个整数num作为参数。 - 如果num小于等于 1,则直接返回 0(非素数)。 - 使用循环遍历从 2 到num的平方根的每个整数。 - 在循环中,如果num能被当前整数i整除,则说明num不是素数,返回 0。 - 如果循环结束后都没有找到能整除num的数,则说明num是素数,返回 1。 -
displayPrimes(int n)函数: - 接收一个整数n作为参数。 - 循环遍历从 2 到n的每个整数。 - 对于每个整数,调用isPrime()函数判断其是否为素数。 - 如果是素数,则打印该数。 -
main()函数: - 从用户处获取一个正整数n。 - 调用displayPrimes()函数打印小于等于n的所有素数。
总结
本文介绍了使用C语言查找素数的方法,并提供了完整的代码示例和详细的代码解析。希望本文能够帮助你理解如何使用C语言解决这一经典的编程问题。
原文地址: https://www.cveoy.top/t/topic/Vxv 著作权归作者所有。请勿转载和采集!