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.  }

 


相关文章
|
11月前
微分方程——Volterra食饵-捕食者模型
微分方程——Volterra食饵-捕食者模型
273 0
|
资源调度 数据处理
第8章 概率统计——8.1 产生随机变量
第8章 概率统计——8.1 产生随机变量
|
算法
最大似然译码与维特比卷积译码算法
最大似然译码与维特比卷积译码算法
135 0
最大似然译码与维特比卷积译码算法
|
机器学习/深度学习
排列组合、古典概型、几何概型与伯努利概型
排列组合、古典概型、几何概型与伯努利概型
|
算法 数据挖掘 Python
贝叶斯分类算法
贝叶斯分类算法
86 0
贝叶斯分类算法
一文看懂奈奎斯特定理和香农定理
一文看懂奈奎斯特定理和香农定理
240 0
一文看懂奈奎斯特定理和香农定理
|
机器学习/深度学习 人工智能 算法
概率与信息论
概率与信息论
157 0
|
算法
F#实现Runge–Kutta算法求解常微分方程
不少工程问题中涉及的微分方程,我们很难求出方程的解析解,或者说根本不存在精确的解析解。此时,我们需要利用电脑,结合数值分析的方法来近似求出微分方程的相关解,并研究其性质。通过求出多个自变量的值,并求出对应的解,那么可以绘制出图形来辅助研究方程的特征。本文将介绍F#实现Runge–Kutta算法求解微分方程。
851 0
F#实现Runge–Kutta算法求解常微分方程
【运筹学】对偶理论 : 最优性定理、强对偶性
【运筹学】对偶理论 : 最优性定理、强对偶性
446 0