1210:因子分解

简介: 1210:因子分解

1210:因子分解

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

输入一个数,输出其素因子分解表达式。

【输入】

输入一个整数 n (2≤n<100)。

【输出】

输出该整数的因子分解表达式。

表达式中各个素数从小到大排列。

如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。

【输入样例】

60

【输出样例】

2^2*3*5

【来源】

No

1. //递推
2. #include<cstdio>
3. #include<iostream> 
4. #include<cstring>
5. #include<cstdlib>
6. using namespace std;
7. int main()
8. {
9.  int a,b=0,n,i;
10.   scanf("%d",&a);
11.   n=a;
12.   for(i=2;i<=a;i++){
13.     int m=0;
14.     if(n%i==0){
15.       if(b==0) b=1;
16.       else printf("*");
17.       printf("%d",i);
18.       while(n%i==0){n/=i;m++;}
19.       if(m>1) printf("^%d",m);
20.     } 
21.     if(i>=n||n==1) break;
22.   } 
23.   return 0;
24.  }
1. //递归
2. #include<cstdio>
3. #include<iostream> 
4. #include<cstring>
5. #include<cstdlib>
6. using namespace std;
7. int s[101];
8. void f(int x,int y)
9. {
10.   if(x==0||y>x) return;
11.   else{
12.     while(x%y==0){
13.       x/=y;
14.       s[y]++;
15.     }
16.     f(x,y+1);
17.   }
18. }
19. int main()
20. {
21.   int n;
22.   scanf("%d",&n);
23.   f(n,2);
24.   int bl=0;
25.   for(int i=2;i<=100;i++){
26.     if(bl==1&&s[i]!=0) printf("*");
27.     if(s[i]!=0) bl=1;
28.     if(s[i]==1) printf("%d",i);
29.     else if (s[i]>1) printf("%d^%d",i,s[i]);
30.   } 
31.   return 0;
32.  }

 


相关文章
|
人工智能 算法 BI
一篇带你速通差分算法(C/C++)
一篇带你速通差分算法(C/C++)
1211:判断元素是否存在
1211:判断元素是否存在
181 0
|
机器学习/深度学习 人工智能 算法
分享135个游戏Python源代码总有一个是你想要的
分享135个游戏Python源代码总有一个是你想要的
688 1
|
IDE 编译器 开发工具
Dev C++安装与运行
Dev C++安装与运行
|
人工智能 图形学 Python
分享40个Python游戏源代码总有一个是你想要的
分享40个Python游戏源代码总有一个是你想要的
1723 0
|
机器学习/深度学习 移动开发 算法
1316:【例4.6】数的计数(Noip2001)
1316:【例4.6】数的计数(Noip2001)
502 0
1312:【例3.4】昆虫繁殖
1312:【例3.4】昆虫繁殖
143 1
|
机器学习/深度学习
1191:流感传染
1191:流感传染
330 0
|
机器学习/深度学习
1313:【例3.5】位数问题
1313:【例3.5】位数问题
352 0