搜索
查看: 1769|回复: 3
打印 上一主题 下一主题

在做挑战里面的题目,关于质数,不知道怎么表示才比较高效

[复制链接]
跳转到指定楼层
楼主
发表于 2013-6-3 20:23:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币

最佳答案

查看完整内容

挑战里能用到两种 1.试除 对于一个整数n,试验2,3到√n之间的所有奇数能否整除n 2.筛法 初始化一个数组a[1] =0 a[2] =2 ... a[n] = n 然后查找数组中第一个非零项i,存储起来,将数组中所有a的倍数设为0 一直循环下去,直到你找到的i > √n 将之前存储起来的数,和a中现有的非零项合并,就是从2-n之间的所有质数
沙发
发表于 2013-6-3 20:23:10 | 只看该作者
挑战里能用到两种
1.试除
对于一个整数n,试验2,3到√n之间的所有奇数能否整除n

2.筛法
初始化一个数组a[1] =0 a[2] =2 ... a[n] = n
然后查找数组中第一个非零项i,存储起来,将数组中所有a的倍数设为0
一直循环下去,直到你找到的i > √n
将之前存储起来的数,和a中现有的非零项合并,就是从2-n之间的所有质数
板凳
发表于 2013-6-3 20:58:08 | 只看该作者
我不知道你现在的水平,最次的是循环试除,一般情况下用素数筛子(位存储),当然要是更高级一点,你可以用动态素数表,或者拉宾米勒测试(当然这是概率判定)
地板
发表于 2013-6-3 22:00:39 | 只看该作者
我的话因为水平不高,用循环试除做一个鉴别素数的函数来做的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表