一颗大棗 发表于 2020-4-22 18:41:05

C语题的一点小疑惑

想问一下绿色圈的地方为什么是大于等于k+1,不应该是k吗?
希望大佬们可以帮忙看一下,捋一下过程。

liuzhengyuan 发表于 2020-4-22 18:43:46

因为是 >= ,如果换成 > 那应该就是 k 不是 k+1 了

一颗大棗 发表于 2020-4-22 18:53:53

liuzhengyuan 发表于 2020-4-22 18:43
因为是 >= ,如果换成 > 那应该就是 k 不是 k+1 了

谢谢您,大于k我可以理解,但我想不通为什么大于等于k+1。

liuzhengyuan 发表于 2020-4-22 18:56:02

一颗大棗 发表于 2020-4-22 18:53
谢谢您,大于k我可以理解,但我想不通为什么大于等于k+1。

大于 k, 在整数范围的前提下和 大于等于 k+1 的意思是一样的

一颗大棗 发表于 2020-4-22 18:57:42

liuzhengyuan 发表于 2020-4-22 18:43
因为是 >= ,如果换成 > 那应该就是 k 不是 k+1 了

我对程序的理解是假如我输入n=11,那k的值大概是三点多。最后i 的值应该是4。是这样理解的吗?

liuzhengyuan 发表于 2020-4-22 19:00:15

一颗大棗 发表于 2020-4-22 18:57
我对程序的理解是假如我输入n=11,那k的值大概是三点多。最后i 的值应该是4。是这样理解的吗?

对的(你可以在循环结束的时候把 i 的值输出,验证一下)

一颗大棗 发表于 2020-4-22 19:09:56

liuzhengyuan 发表于 2020-4-22 19:00
对的(你可以在循环结束的时候把 i 的值输出,验证一下)

这样的话,最后i的值为4,k+1的值就是四点多,那就相当于4>=4点多的一个数?(现在有点晕也不知道说的对不对)

一颗大棗 发表于 2020-4-22 19:12:31

liuzhengyuan 发表于 2020-4-22 19:00
对的(你可以在循环结束的时候把 i 的值输出,验证一下)

还有一点我不知道我理解的对不对,这里使用根号来缩小范围的原理是因为一个数若是取根号后取余为零的话,则这个数取余也一定为零?

liuzhengyuan 发表于 2020-4-22 19:26:31

本帖最后由 liuzhengyuan 于 2020-4-22 19:30 编辑

一颗大棗 发表于 2020-4-22 19:09
这样的话,最后i的值为4,k+1的值就是四点多,那就相当于4>=4点多的一个数?(现在有点晕也不知道说的对 ...

n 是整形(int)所以他会用“去尾法”,把小数去掉的

liuzhengyuan 发表于 2020-4-22 19:29:02

一颗大棗 发表于 2020-4-22 19:12
还有一点我不知道我理解的对不对,这里使用根号来缩小范围的原理是因为一个数若是取根号后取余为零的话, ...

是这样的
程序把所有小于 n 的开根 的数 除以 n,如果其中有一个数能把 n 整除,那么 n 就不是素数

一颗大棗 发表于 2020-4-22 19:38:40

liuzhengyuan 发表于 2020-4-22 19:29
是这样的
程序把所有小于 n 的开根 的数 除以 n,如果其中有一个数能把 n 整除,那么 n 就不是素数

感谢
页: [1]
查看完整版本: C语题的一点小疑惑