(分解质因数的代码来源于: 分解质因数(C语言实现)_傻傻的小白-CSDN博客_质因数分解c语言 思路:1.首先找到一个最小的质数k,最小的质数为22.如果这个质因数k等于n那么分解过程就结束了3.如果k不等于n,但是n可以被k整除,那么输出这个k,并用n/k(n除以k)作为n的新值,并重复步骤2(用循环)4.如果n不能被k整除,那么是k=k+1; 重复执行第2步注意:仔细理解2,3,4的循环步骤,可在纸上演练一遍#include<stdio.h>int main... https://blog.csdn.net/weixin_44018859/article/details/88087467 )全部代码如图:
当if里的n可以被k整除后,走了第一遍for循环,此时k已经变为k+1,之后n会试着被k+1整除(总之不会再被k除以);但如果输入的n为8,它的质因数全是2,这样不就只有第一个2可以成功了吗?但我经过验证发现代码是正确的。不知道为什么是对的,我哪里想错了。求大佬告知
收起
不是有n=n/k吗如输入8,循环里算2*2,最后再输出个2
报告相同问题?