[Cpp] // clear orange OJ A1036. decomposition prime factor // http://www.tsinsen.com/ViewGProblem.page? Gpid = A1036 # include <stdio. h> # include <string. h> # define MAXS 10005 int main () {int a, B, I, j, k, count = 0, prime [MAXS], mark [MAXS] = {0 }, ans [MAXS]; memset (prime, 0, MAXS * sizeof (int); for (I = 2; I <MAXS; I ++) {if (mark [I]) continue; prime [count ++] = I; for (j = I * I; j <MAXS; j + = I) mark [j] = 1;} while (~ Scanf ("% d", & a, & B) {for (k = a; k <= B; k ++) {if (! Mark [k]) {printf ("% d = % d \ n", k, k); continue;} memset (ans, 0, MAXS * sizeof (int )); int temp = k; for (I = 0; prime [I] <= temp; I ++) {if (temp % prime [I] = 0) {ans [prime [I] ++; temp/= prime [I --] ;}/// for (I = 0 ;! Ans [prime [I]; I ++); printf ("% d = % d", k, prime [I]); while (-- ans [prime [I]) printf ("* % d", prime [I]); for (I ++; I <count; I ++) {www.2cto.com while (ans [prime [I] --) {printf ("* % d", prime [I]) ;}} printf ("\ n ");} // for} // while return 0 ;}