c语言简答题
1、函数IsPrime的形参类型定为unsigned而不是int,有两个好处是:2.判断n是否质数时,为什么只需要判断能否被小于n平方根的正整数(从2到√n)整除,而不需要判断能否被小于n-1的数(从2到n-1)整除?
2.对于每个数n,其实并不需要从2判断到n-1,我们知道,一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n),据此,并不需要遍历到n-1,遍历到sqrt(n)即可,因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数。 质数就不是合数。那么怎样的最小组合刚好等于【待判断的数】?就是该数的平方根。用 25 为例好了,其他的太小
2 * 3 = 6 | 3*2 也考虑进去了,排列组合
3 * 3 = 9
3 * 4 = 12
4 * 4 = 16
4 * 5 = 20
5 * 5 = 25
5 * 6 = 30 //超过 25 啦,所以根本就不需要再往下看
页:
[1]