摘要:
题目描述: B. Minimum Possible LCM time limit per test 4 seconds memory limit per test 1024 megabytes input standard input output standard output You are g 阅读全文
摘要:
正常文本开头 include using namespace std; int main() { cout 阅读全文
摘要:
思路:见参考文章(原理我是写不粗来了) 代码: 用到了快速幂,米勒罗宾素性检验。 其他分解质因数的方法: 朴素算法:枚举从2到n找n的因子,找到了就不断除,除到不能除为止,再找下一个因子。 为什么保证是素因子,从二开始,假设有二的因子,不断地除直到没有二就能保证二的倍数也没有了。类似于素数筛的思想。 阅读全文
摘要:
适用范围:较大数的较快素性判断 思路: 因为有好的文章讲解具体原理(见参考文章),这里只是把代码的大致思路点一下,读完了文章如果还有些迷糊,可以参考以下解释 原理是费马小定理:如果p是素数,则a^(p-1)%p==1,加上二次探测定理:如果p是一个素数,则x^2%p==1的解为,则x=1或者x=n- 阅读全文
摘要:
快速幂: 计算a^n%p的值,怎么算呢?直接算当然可能溢出。我们有一条引理:(a*b)%p=((a%p)*(b%p))%p.在这个引理上进行指数上的合并从而得到快速幂算法。 具体地,有两种思路,一种是减小a值,以防溢出,一种是减小b值,加快计算。 怎么减小a值?a=a%p,就把a的值降到了p以下。对 阅读全文