C/C++ 演算法分析與設計:列舉(分數拆分)
阿新 • • 發佈:2018-12-14
題目描述
現在輸入一個正整數k,找到所有的正整數x>=y,使得1/k=1/x+1/y.
輸入
第一行輸入一個整數n,代表有n組測試資料。 接下來n行每行輸入一個正整數k
輸出
按順序輸出對應每行的k找到所有滿足條件1/k=1/x+1/y的組合
樣例輸入
2 2 12
樣例輸出
1/2=1/6+1/3 1/2=1/4+1/4 1/12=1/156+1/13 1/12=1/84+1/14 1/12=1/60+1/15 1/12=1/48+1/16 1/12=1/36+1/18 1/12=1/30+1/20 1/12=1/28+1/21 1/12=1/24+1/24
#include <iostream> #include <cmath> using namespace std; int main() { int i,j,n,k,f; while(cin>>n) { while(n--) { cin>>k; f=k+1; for(i=k+1;i<=k*f;i++) for(j=i;j<=k*f;j++) if(k*(i+j)==i*j) cout<<"1/"<<k<<"="<<"1/"<<j<<"+"<<"1/"<<i<<endl; } } return 0; }