力扣的板子

板子

线性筛法求质因子的板子

cpp 复制代码
int limit = 100000; //修改为题目中的数字的上限
bool isprime[100005] = {0}; //保存所有1~limit中的数字是不是质数
int myprime[100005] = {0};  //保存2~limit中所有数字的最小质因子
int primes[100000] = {0};   //保存所有1~limit中出现的质数
int tot = 0;                //1~limit中质数的总个数
//保存每一个下标为i的数字对应的质因子的种类个数
int scors[100005] = {0};
int init = [](){
    memset(isprime,1,sizeof(isprime));
    for(int i = 2;i<=limit;i++){
        if(isprime[i]){
            primes[tot++] = i;
            myprime[i] = i;
        }
        for(int j = 0;j<tot && primes[j]*i <= limit;j++){
            int val = primes[j];
            isprime[val*i] = 0;
            myprime[val*i] = val;
            if(i%val == 0){
                break;
            }
        }
    }
    //计算1e5内的所有质数分数
    for(int i = 2;i<=limit;i++){
        int j = i;
        int cnt = 0;
        while(j!=1){
            cnt++;
            int div = myprime[j];
            while(j%div == 0){
                j /= div;
            }
        }
        scors[i] = cnt;
    }
    return 0;
}();

快速幂

cpp 复制代码
ll quickmul(ll a,ll b){
        if(b == 1){
            return a;
        }else{
            if(b % 2 == 0){
                ll tmp = quickmul(a,b/2);
                return tmp*tmp%mo;
            }else{
                ll tmp = quickmul(a,b/2);
                return ((tmp*tmp%mo)*a)%mo;
            }
        }
    }
相关推荐
汉克老师1 小时前
GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
c++·学习·算法·游戏·动态规划·gesp6级
闻缺陷则喜何志丹1 小时前
【C++图论】2685. 统计完全连通分量的数量|1769
c++·算法·力扣·图论·数量·完全·连通分量
利刃大大1 小时前
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
c++·算法·二叉树·深度优先·dfs
CaptainDrake2 小时前
力扣 Hot 100 题解 (js版)更新ing
javascript·算法·leetcode
一缕叶2 小时前
洛谷P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数
算法·蓝桥杯
甜甜向上呀2 小时前
【数据结构】空间复杂度
数据结构·算法
Great Bruce Young2 小时前
GPS信号生成:C/A码序列生成【MATLAB实现】
算法·matlab·自动驾驶·信息与通信·信号处理
Mryan20052 小时前
LeetCode | 不同路径
数据结构·c++·算法·leetcode
SummerGao.3 小时前
springboot 调用 c++生成的so库文件
java·c++·.so
情深不寿3173 小时前
C++----STL(list)
开发语言·c++