摘要: 任务 给一个正整数N,将N分解质因数。 说明 N的质因数要么是N本身(N是素数),要么一定小于等于sqrt(N)。与i那次可以用小于等于sqrt(N)的数对N进行试除,一直到不能除为止。这时候剩下的数如果不是1,那就是N最大的质因数。 接口 复杂度:O(sqrt(N)) 输入:n 待分解的整数 输出 阅读全文
posted @ 2018-08-23 21:11 zifeiy 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 任务 给一个正整数N,判定N是否为素数。 说明 Miller Rabin测试:要测试N是否为素数,首先将N 1分解为2^s d。在每次测试开始时,先随机选一个介于[1,N 1]的整数a,如果对所有在区间[0,s 1]范围内的r都满足a^d mod N 1 且 a ^ (2 ^ r d) mod N 阅读全文
posted @ 2018-08-23 20:59 zifeiy 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 任务 给定一个正整数N,求出[2,N]中的所有素数。 说明 数组valid[i]记录i是否为素数。初始所有的valid[i]都为true。从2开始从小到大枚举i,若valid[i]=true,则把从i^2开始的所有i的倍数的valid赋为false。 结束之后valid[i]=true的就是素数。 阅读全文
posted @ 2018-08-23 20:44 zifeiy 阅读(195) 评论(0) 推荐(0) 编辑