题意:找三个数x,y,z,有下面两个条件:
1.这个数可以整除ab
2.不满足1.且这个数可以整除a;
要求x,y,z中恰有1个满足1,另外两个满足2,且x+y=z.
能找到就输出YES并依次输出这三个数,不能则输出NO
设正整数k,m,有ak+a(bm)=a(bm+k)
令ak%ab!=0,a(bm+k)%ab!=0,那么这三个数就符合要求
整理得k%b!=0,故随便找一个符合式子的k代入即可。
b==1时无论如何也找不到k,输出NO
b>1时,任意k满足1<=k<b就符合式子,这里选k=b-1.
时间T×O(1)
编辑:取k=1好像更简单……
#include<bits/stdc++.h> #define ll long long using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); ll t,a,b; cin>>t; while(t--) { cin>>a>>b; if(b>1) { cout<<"YES\n"; cout<<a*(b-1)<<' '<<a*b<<' '<<a*(2*b-1)<<endl; } else cout<<"NO\n"; } return 0; }