1. 程式人生 > >【程式14】 題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5

【程式14】 題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/*
【程式14】
題目:將一個正整數分解質因數。例如:輸入90, 打印出90 = 2 * 3 * 3 * 5。
【分析】
就是從2到自己,一一除過去
*/
#if 0
int main(int argc, int **argv){
	int num = 0, i = 0;
	printf("請輸入一個數字\n");
	scanf("%d", &num);
	printf("%d = ", num);
	for (i = 2; i <= num; i++)
	{
		if (num % i == 0)  //被整除
		{
			printf("%d * ", i);
			num = num / i;
			if (num < i)
			{
				i = 2;
				continue;
			}
		}
	}
	return 0;
}
#endif
int main(int argc, int **argv){
	int num = 0, i = 0;
	printf("請輸入一個數字\n");
	scanf("%d", &num);
	printf("%d = ", num);
	for (i = 2; i <= num; i++)
	{
		while (num > i)  //保證被一個數整除後,繼續從該數試
		{
			if (num % i == 0)  //被整除
			{
				printf("%d * ", i);
				num = num / i;
			}
			else
				break;
		}
	}
	printf("%d", num);
	return 0;
}