1 #include<stdio.h>
2
3 int isprime(int n)//判断素数
4 {
5 int k = 0;
6 for (int i=2;i<n/2;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 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步