试除法判定质数算法总结

知识概览

质数的定义

在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者叫素数。

质数的判定------试除法

暴力算法 时间复杂度

改进算法 时间复杂度

暴力算法:时间复杂度O(n)

算法模版

cpp 复制代码
bool is_prime(int n)
{
    if (n < 2) return false;
    for (int i = 2; i < n; i++)
        if (n % i == 0)
            return false;
    return true;
}

优化算法:时间复杂度O(sqrt(n))

算法模版

cpp 复制代码
bool is_prime(int n)
{
    if (n < 2) return false;
    for (int i = 2; i <= n / i; i++)
        if (n % i == 0)
            return false;
    return true;
}

例题展示

题目链接

活动 - AcWing系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。https://www.acwing.com/problem/content/868/

题解

用试除法的改进版本可以解决,否则会超时。

代码

cpp 复制代码
#include <iostream>
#include <algorithm>

using namespace std;

bool is_prime(int x)
{
    if (x < 2) return false;
    for (int i = 2; i <= x / i; i++)
        if (x % i == 0)
            return false;
    return true;
}

int main()
{
    int n;
    cin >> n;
    
    while (n--)
    {
        int x;
        cin >> x;
        if (is_prime(x)) puts("Yes");
        else puts("No");
    }
    
    return 0;
}

参考资料

  1. AcWing算法基础课
相关推荐
菜菜的顾清寒15 小时前
力扣HOT100(46)将有序数组转换为二叉搜索树
算法·leetcode·职场和发展
随意起个昵称1 天前
区间dp-基础题目1(石子合并)
算法·动态规划
吞下星星的少年·-·1 天前
线段树模板
算法
段一凡-华北理工大学1 天前
2026 高炉炼铁智能化技术全景与演进路径~系列文章11:演进路径与行业未来
大数据·网络·人工智能·算法·工业智能体·高炉炼铁智能化
叶小鸡1 天前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
星马梦缘1 天前
aaaaa
数据结构·c++·算法
菜菜的顾清寒1 天前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
lqqjuly1 天前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
逻辑君1 天前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵
珊瑚里的鱼1 天前
【动态规划】不同路径Ⅱ
算法·动态规划