\u003cp\u003e对于给定的n,求比n小的质数中最大的一个。\u003c/p\u003e\n\u003cp\u003e质数是指一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003e输入描述\u003c/h3\u003e\n\u003cp\u003e一个整数n。(2\u003cn\u003c10000)\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003e输出描述\u003c/h3\u003e\n\u003cp\u003e一个整数,即题目要求的解。\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003e用例输入 1 \u003c/h3\u003e\n\u003cp\u003e100\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003e用例输出 1 \u003c/h3\u003e\n\u003cp\u003e97\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003e来源\u003c/h3\u003e\n\u003cp\u003e电子学会2021年9月二级\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003ec++内容:\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e#include \u003ciostream\u003e\nusing namespace std;\n\nbool isPrime(int num) {\n if (num \u003c 2) {\n return false;\n }\n for (int i = 2; i * i \u003c= num; i++) {\n if (num % i == 0) {\n return false;\n }\n }\n return true;\n}\n\nint main() {\n int n;\n cin \u003e\u003e n;\n\n for (int i = n - 1; i \u003e= 2; i--) {\n if (isPrime(i)) {\n cout \u003c\u003c i \u003c\u003c endl;\n break;\n }\n }\n\n return 0;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003ch3\u003e解题思路:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e定义一个函数isPrime(),判断一个数是否为质数。如果一个数小于2,则不是质数,返回false;否则,从2开始遍历到该数的平方根,如果存在能整除该数的因子,则不是质数,返回false;否则,是质数,返回true。\u003c/li\u003e\n\u003cli\u003e主函数中,先读入一个整数n。\u003c/li\u003e\n\u003cli\u003e从n-1开始递减遍历,对每个数调用isPrime()函数判断是否为质数。如果是质数,则输出该数,并结束循环。\u003c/li\u003e\n\u003c/ul\u003e

C++算法题:求比n小的最大质数 - GESP二级考试真题

原文地址: https://www.cveoy.top/t/topic/qj6J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录