1 #include
2
3 int isprime(int n)//判断素数
4 {
5 int k = 0;
6 for (int i=2;i2;i++)
7 {
8 if (n % i== 0)
9 {
10 k++;//如果发生相加,则说明不是素数
11 break;
12 }
13 }
14 k = !k;//0表示不是素数。返回1则表示是素数
15 return k;
16 }
17 int fun(int a)//分解质因数
18 {
19 int b;
20 for (int i = 2; i < a / 2; i++)
21 {
22
23 if (a % i == 0)
24 {
25 b = isprime(i);
26 if (b)//说明i为素数因子
27 {
28 printf("*%d",i);
29 a = a / i;
30 }
31 }
32 }
33 return a;
34 }
35 int main()
36 {
37 int a,b;
38 scanf_s("%d",&a);
39 printf("a=1");
40 b=fun(a);
41 while (a != b)//说明没有分解到最后一项,则继续分解
42 {
43 a = b;
44 //printf("*%d", a);
45 b=fun(a);
46 }
47 printf("*%d",b);
48 return 0;
49 }