力扣的板子

板子

线性筛法求质因子的板子

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;
            }
        }
    }
相关推荐
x_xbx17 小时前
LeetCode:739. 每日温度
算法·leetcode·职场和发展
不会C语言的男孩17 小时前
C++ Primer Plus 第3章:处理数据
开发语言·c++
RuiZN18 小时前
UE5 蓝图 FPS 02 Event Beginplay
c++·ue5
欧米欧18 小时前
C++进阶之AVL树
java·服务器·c++
艾莉丝努力练剑18 小时前
【Linux:文件】库的制作与原理进阶
linux·运维·服务器·网络·数据库·c++·人工智能
计算机安禾18 小时前
【算法分析与设计】第20篇:图论中的NP困难问题与近似策略
大数据·人工智能·算法
Trouvaille ~18 小时前
【优选算法篇】深入浅出链表算法:交换、重排与合并的终极策略
c++·算法·链表·面试·蓝桥杯·笔试·后端开发
Z_Wonderful18 小时前
大文件上传-分片上传-秒传
算法·哈希算法
heimeiyingwang18 小时前
【架构实战】分布式ID生成方案:雪花算法与业务ID设计
分布式·算法·架构
圣保罗的大教堂18 小时前
leetcode 3121. 统计特殊字母的数量 II 中等
leetcode