【题目描述】
输入一个数,输出其素因子分解表达式。
【输入】
输入一个整数 n (2≤n<100)。
【输出】
输出该整数的因子分解表达式。
表达式中各个素数从小到大排列。
如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。
【输入样例】
60
【输出样例】
2^2*3*5
【源程序】
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #define N 10001 using namespace std; int n; int a[N],b[N]; void calculate(int x,int y) { if(x==0||y>x) return; while(x%y==0) { x/=y; a[y]++; } calculate(x,y+1); } int main() { bool flag=false; cin>>n; calculate(n,2); for(int i=2;i<=n;i++) { if(flag&&a[i]) cout<<"*"; if(a[i]) flag=true; if(a[i]==1) cout<<i; else if(a[i]>1) cout<<i<<"^"<<a[i]; } cout<<endl; return 0; }