1210:因子分解
【题目描述】
输入一个数,输出其素因子分解表达式。
【输入】
输入一个整数 n (2≤n<100)。
【输出】
输出该整数的因子分解表达式。
表达式中各个素数从小到大排列。
如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b
;当b等于1时,则直接写成a。
【输入样例】
60
【输出样例】
2^2*3*5
从2开始分解,因子加1;看有几个
#include<bits/stdc++.h> using namespace std; int a[100001];//保存相应下标数的个数 void yinzi(int m,int t) { int b=0; if(m<t||m==1) return; else { while(m%t==0) { m=m/t; a[t]++; b=1; } //下面判断怎么输出 if(a[t]>1) cout<<t<<"^"<<a[t]; else if(a[t]==1) cout<<t; if(m>t&&b==1)// cout<<"*"; yinzi(m,t+1); } } int main() { int n,i=2; scanf("%d",&n); yinzi(n,i); return 0; }