合数分解//循环


【问题描述】
由数学基本定理可知:任何一个大于1的非素数整数(即合数)都可以唯一分解成若干个素数的乘积。编写程序,从控制台读入一个合数(合数的大小不会超过int数据类型表示的范围),求该合数分解成素数的最小集。该最小素数集由合数分解成的素数组成,并且重复的素数只保留一个。按从小到大的顺序输出求得的最小素数集。
【输入形式】
从控制台输入一个合数。
【输出形式】
在标准输出上按从小到大顺序输出求得的最小素数集,各素数之间以一个空格分隔,最后一个素数后空格可有可无。
【输入样例】
12308760
【输出样例】
2 3 5 29 131
【样例说明】
输入的合数为12308760,该合数分解成的素数乘积为:2*2*2*3*3*3*3*5*29*131。这些素数形成的最小集为:2 3 5 29 131。
【评分标准】
该题要求按照从小到大的顺序输出最小素数集,提交程序文件名为primes.c。

最初的关于i的大循环是一直进行的,内嵌的小循环也没有改变i的值,所以这的形式取素数时产生的素数数列内的素数是不重复的;它只判断素数从小到大能不能整除,能则输出,然后尝试下一个素数;不判断能除几回,也不会重复输出素数。
by 天外高人