如果数据规模较大就会很耗费时间。
可以大致分为一下几类:
- 新手筛(朴素筛)
- 新手优化筛
- 埃拉托斯特尼算法(常称为埃氏筛)
- 欧拉筛
测试数据分别为
新手筛 测试数据10^5 阶乘结果9592用时21.401952028274536s
新手优化筛 测试数据10^6 阶乘结果78498用时3.4318480491638184s
埃氏筛
测试数据10^6 阶乘结果78498用时0.27430033683776855s
测试数据10^7 阶乘结果664579用时2.836449384689331s
欧拉筛
测试数据10^6 阶乘结果78498 用时0.6881604194641113s
测试数据10^7 阶乘结果664579用时6.959389925003052s
由此间得,使用筛法可以大大的节约我们的时间,为什么一定要节约时间呢?
通常素数在问题求解中并不是核心算法,所以我们必须对其进行优化,以给核心算法争取更多的时间。🤤
=========================================================================