数学知识模板之试除法

试除法判定质数

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; }

试除法分解质因数

void divide(int x) { for(int i = 2;i <= x / i;i ++ ) { int s = 0; while(x % i == 0) { s ++; x /= i; } cout << i << ' ' << s << endl; } if(x) cout << x << ' ' << 1 << endl;// 如果x大于1,说明存在一个大于根号x的质因子 /* 如果N = p1^c1 * p2 ^ c2 * p3 ^ c3 *... * pk & ck; 约数个数 = (c1 + 1)(c2 + 1)...(ck + 1) 所有约数之和 = (p1 ^ 0 + p1 ^ 1 + ... + p1 ^ c1)* ... * (pk ^ 0 + pk ^ 1 + ... + pk ^ ck) */ }

试除法求所有约数

vector<int> get_dividors(int x) { vector<int> res; for(int i = 1;i <= x / i;i ++ ) { if(x % i == 0 ) { res.push_back(i); if(x / i != i) res.push_back(x / i); } } sort(res.begin(),res.end()); return res; }

__EOF__

本文作者知凹
本文链接https://www.cnblogs.com/zhiao/p/17234272.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   知凹  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示