关于#c##的问题:i就输出为3.6.9吧但是下面那个if(x==2或3)那么break就直接输出判断正确的那个数吧

img

i就输出为3.6.9吧但是下面那个if(x==2或3)那么break就直接输出判断正确的那个数吧

判断x取i是否余0
如果余0 再作除法
但是i没有从头开始计数。
所以你这个求子因数的程序存在逻辑上的问题。
例如 第一趟 18%2==0 打印2, x=18/2 = 9 i++ i现在等于3
第二趟 9%3==0 x=9/3=3 i++ i现在等于4
x永远不为1

x=x/;后应该加一句i--
这样代码的作用就是求x的所有质因子。比如18=2 * 3 * 3