酷代码 AI
菜单

一个大于1的自然数p,除了1和本身p以外,不能被其他自然数整除,称p为素数(又称质数,prime number),称p为合数。已知素数有无限多个,但是到目前为止,人们未找到一个公式可求出所有质数。 2016年1月,发现世界上迄今为止最大的质数,长达2233万位,如果用普通字号将它打印出来长度将超过65公里。 素数从小到大排列,有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······ 输入一个不大于1000000的正整数N,输出其是否为素数,如果是输出YES,否则输出NO。用c语言

```c #include <stdio.h> #include <stdbool.h> // 该函数用于判断一个数是否为素数 bool isPrime(int num) { // 素数定义要求大于1 if (num <= 1) { return false; } // 从2开始到sqrt(num)检查是否有能整除num的数 for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return false; } } return true; } int main() { int N; // 读取用户输入的正整数 scanf("%d", &N); // 调用isPrime函数判断是否为素数 if (isPrime(N)) { printf("YES\n"); } else { printf("NO\n"); } return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 素数的定义是大于1的自然数,所以在判断时要先排除小于等于1的数。 2. 在循环检查因数时,循环到sqrt(num)即可,因为如果num有大于sqrt(num)的因数,那么必然有一个小于sqrt(num)的因数与之对应。 3. 输入的数要确保在规定的范围(不大于1000000)内,虽然本代码未对范围做额外检查,但在实际应用中可能需要添加边界检查。 [2025-11-20 00:18:48 | AI写代码神器 | 350点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多