因子分解(信息学奥赛一本通-T1210)
生活随笔
收集整理的這篇文章主要介紹了
因子分解(信息学奥赛一本通-T1210)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
輸入一個數,輸出其素因子分解表達式。
【輸入】
輸入一個整數 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; }總結
以上是生活随笔為你收集整理的因子分解(信息学奥赛一本通-T1210)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有上司的舞会(洛谷-P1352)
- 下一篇: Katu Puzzle(POJ-3678