K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
质数指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,现有需求实现函数判断输入的正整数n是否为质数。
判定n是否为质数时,可以直接遍历2到n-1的所有整数,判断是否存在能整除n的数,该方法时间复杂度为O(n),是最优的单个数质数判定算法。
优化版质数判定算法只需要遍历2到√n(取整)的所有整数即可,理由是如果n有一个大于√n的因数,那么必然存在一个对应的小于√n的因数。
当输入n的值为1时,可以直接返回true,因为1没有除了自身以外的因数,符合质数特征。
用遍历2到√n的算法判定n=2是否为质数时,因为√2≈1.414取整为1,循环从2开始到1结束不会执行,会错误返回true,所以必须对n=2单独做特殊处理。