Day 2:数论——[筛法、gcd、lcm 和裴蜀定理] 未完

Day 2:数论——[筛法、 g c d gcd gcd l c m lcm lcm 和裴蜀定理]

一、筛法

注:

1.我们用 ps_is_prime 数组来表示暴力筛的 b o o l bool bool 类型判断素数数组( 0 0 0 表示是质数, 1 1 1 表示不是质数)。

2.我们用 ai_is_prime 数组来表示埃氏筛的 b o o l bool bool 类型判断素数数组。

2.我们用 ou_is_prime 数组来表示欧拉筛的 b o o l bool bool 类型判断素数数组,prime 来表示欧拉筛的素数表,cnt 来表示 prime 数组的长度。

1.暴力筛( V i o l e n c e Violence Violence s c r e e n i n g screening screening m e t h o d method method

① ① 原理

C a s e Case Case 1 1 1 初始化:一个常识: 1 1 1 肯定不是质数,那么 ps_is_prime[1] 便置为 1 1 1

C a s e Case Case 2 2 2 筛数过程:先用 i i i 枚举 2 − n 2 - n 2n 中的每一个数,再用 j j j 2 2 2 开始枚举,将 i i i 的所有不超过 n n n 的倍数在 ps_is_prime 中标记为 1 1 1

C a s e Case Case 3 3 3 小优化:由于每个数的因数都成对出现,所以只需要枚举到 n \sqrt n n 即可。

② ② 具体例子举例

例如:筛 20 20 20 以内的质数。

首先,将 1 1 1 表示不是质数,预先算出 n = 4 \sqrt n = 4 n =4

1 − n 1 - n 1n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ps_is_prime 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

第一次循环, i = 2 i = 2 i=2

1 − n 1 - n 1<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值