#include <stdio.h>
int main()
{
int x, n;
printf("请输入一个正整数\n");
scanf("%d",&x);
printf("%d=",x);
for(n=2;n<x;n++)
{
if(x%n==0){ printf("%d*",n); x=x/n; n=1; }
}
printf("%d\n",x);
}
为什么要让n=1,还有最后为什么会有x的printf?
起一个重置的作用。
假设不重置n为1,下次循环n则会变为3并每循环一次+1,即之后的循环都会错过除以2的判断。
最后一个prinf,x则是最小因数
这段代码的if判断那段是在说:先判断X是不是一个偶数,不是偶数n就不停的加最后退出。是偶数就X除2,把n赋值1,等循环结束n++后又变成2,下次循环再判断X是不是偶数,最后把X在连续除2后不能再除2的奇数(也有可能为数字2)返回