码友仁 2022-02-08 13:20 采纳率: 71.4%
浏览 31
已结题

分解质因数中遇到的一些细节问题

#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?

  • 写回答

2条回答 默认 最新

  • CCCCCCCYYY_ 2022-02-08 14:14
    关注

    起一个重置的作用。
    假设不重置n为1,下次循环n则会变为3并每循环一次+1,即之后的循环都会错过除以2的判断。
    最后一个prinf,x则是最小因数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 创建了问题 2月8日