大家好,我是一个天天%&的蒟蒻。(%&是膜与,摸鱼的意思)
问题:为什么判断质数时从 2 循环到 sqrt(n) 就可以了,但是求因数要循环到 n/2 呢?
可能我描述得不是很清楚,故贴上以下代码:
for(int i = 2;i <= sqrt(x);i++){
if(x % i == 0)
return 0;
}
(质数判断)
for (int i = 1; i <= n; ++i) {
if (n % i == 0) {
char c = st[i - 1];
if (c >= 'a')
st[i - 1] = c - 'a' + 'A';
}
}
CSP-J 2019 T16 这题下面的判断题为:
若将第8行的“i <= n”改为“i * i <= n”,程序运行结果不会改变。(×)
i∗i<=n 就是 i<=sqrt(n)。这个判断应该选错。
请问有没有人说说区别在哪里?解释一下为啥质数的是 sqrt 呢?
最近本人爷爷身体不太好,我也不在老家读书,所以也不能直接照顾到他。他现在食欲也不太好,我们都担心他会病情加重。我父母现在在家里十分焦虑,又要关注我的学习,还要回老家照顾爷爷。我也是很纠结,又有whk,又有OI,还要关心照顾爷爷,这鱼和熊掌也不可兼得。
也不知道爷爷还能与我们在一起多少时日。大家都希望他好起来,毕竟生活在病痛中确实是一种煎熬与折磨。谁能说个方法,让我爷爷快点好起来,别再承受度日如年、万分痛苦的折磨呢……