素数问题 sqrt函数
请问在使用这个函数的时候 遇见比如sqrt(101 )的时候是往下取整了还是没有 如果往下取整了那么sqrt(101)为什么是素数呢
sqrt是开根号的意思
sqrt是开根号,如果要向下取整的话,你要用floor
1.sqrt是开方
2.sqrt(101)是个double类型,它没有取整
3.i<=sqrt(n)其实就等价于i*i<=n,从数学上可以证明如果任何小于n的开方的数都不能整除n,那么大于n的开方的数也不能整除n,所以运行到开方即可,这样比较节省时间。
额,素数的定义是在正整数范围的定义的
所以就算 “向下取整”了又如何
a*b=c
假设c是5,5的平方跟2.236, 你用2除不能满足,那么请问你向上取整变成3能满足么?
之所以用平方根,是因为a==b是a的最大取值范围,2 * 3=6和 3 * 2=6 一样,我们只需要保证 a<=6的平方就可以覆盖条件了
请记住素数的定义是正整数范围,不是正数范围,更不是无理数范围的事情