您的
for循环有一个小问题。它应该是: -
for (i = 2; i < n; i++) // replace `i <= n` with `i < n`
当然,您不希望
n除以时的余数
n。它会永远给你
1。
实际上,您甚至可以通过将条件更改为-来减少迭代次数
i <= n / 2。由于
n不能除以大于的数字
n /2,除非我们考虑
n,否则我们根本不必考虑。
因此,您可以将
for循环更改为:-
for (i = 2; i <= n / 2; i++)

您的
for循环有一个小问题。它应该是: -
for (i = 2; i < n; i++) // replace `i <= n` with `i < n`
当然,您不希望
n除以时的余数
n。它会永远给你
1。
实际上,您甚至可以通过将条件更改为-来减少迭代次数
i <= n / 2。由于
n不能除以大于的数字
n /2,除非我们考虑
n,否则我们根本不必考虑。
因此,您可以将
for循环更改为:-
for (i = 2; i <= n / 2; i++)