UVA10976-Fractions Again?!

xiaoxiao2021-02-28  121

题意:输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y。

分析:由x>=y,易得k<y<=2*k。遍历y求出x并验证即可。

#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int maxn = 25; int a[maxn]; int main () { //freopen("in.txt","r",stdin); int k; while(cin>>k){ int sum=0; for(int y=k+1;y<=2*k;y++){ if(k*y%(y-k)==0) { int t=k*y/(y-k); if(t>=y) sum++; } } cout<<sum<<endl; for(int y=k+1;y<=2*k;y++){ if(k*y%(y-k)==0) { int t=k*y/(y-k); if(t>=y) printf("1/%d = 1/%d + 1/%d\n",k,t,y); } } } return 0; }

转载请注明原文地址: https://www.6miu.com/read-27354.html

最新回复(0)