前言
本系列为C语言菜鸟100道基础经典例题详解刷题系列。每天1题,点滴成长,一起逆袭。
一、题目描述
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
二、题目分析
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。
(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
三、解题
程序运行代码
#include<stdio.h>
int main() {
int n,i;
printf("请输入整数:");
scanf("%d",&n);
printf("%d=",n);
for(i=2; i<=n; i++) {
while(n%i==0) {
printf("%d",i);
n/=i;
if(n!=1) printf("*");
}
}
printf("\n");
return 0;
}
总结
外层循环控制一共有多少次循环。
while语句可以理解成if语句的循环不断执行。区别是if只执行一次就跳出,而while只要条件满足就会不断循环。
我们做题时可以用if语句把基本的条件表示出来,然后如果你发现是重复执行的话改成while语句的形式,之后再看需要执行多少次(外层嵌套for)