肥喵奶黄包 发表于 2018-10-24 11:43:56

c语言简答题

1、函数IsPrime的形参类型定为unsigned而不是int,有两个好处是:
2.判断n是否质数时,为什么只需要判断能否被小于n平方根的正整数(从2到√n)整除,而不需要判断能否被小于n-1的数(从2到n-1)整除?

Yo乄 发表于 2018-10-24 11:58:40

2.对于每个数n,其实并不需要从2判断到n-1,我们知道,一个数若可以进行因数分解,那么分解时得到的两个数一定是一个小于等于sqrt(n),一个大于等于sqrt(n),据此,并不需要遍历到n-1,遍历到sqrt(n)即可,因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数。

claws0n 发表于 2018-10-25 18:18:35

质数就不是合数。那么怎样的最小组合刚好等于【待判断的数】?就是该数的平方根。用 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]
查看完整版本: c语言简答题