C. Product of Three Numbers
time limit per test
2 secondsmemory limit per test
256 megabytesinput
standard inputoutput
standard outputYou are given one integer number . Find three distinct integers such that and or say that it is impossible to do it.
If there are several answers, you can print any.
You have to answer independent test cases.
Input
The first line of the input contains one integer () — the number of test cases.
The next lines describe test cases. The -th test case is given on a new line as one integer ().
Output
For each test case, print the answer on it. Print "NO" if it is impossible to represent as for some distinct integers such that .
Otherwise, print "YES" and any possible such representation.
Example
input
Copy
5 64 32 97 2 12345
output
Copy
YES 2 4 8 NO NO NO YES 3 5 823
Solution
#include<bits/stdc++.h>using namespace std;#define vv vector<int> v;int main(){#ifndef ONLINE_JUDGE// for getting input from input.txtfreopen("input.txt", "r", stdin);// for writing output to output.txtfreopen("output.txt", "w", stdout);#endifint t;cin>>t;while(t--){// cout<<"value of t is:"<<t<<endl;int n;cin>>n;vector<int>v;if(n<24){cout<<"NO\n";}else{int a,b,c,k=0;int temp=n;for(int i=2; i*i<=n; i++){if(n%i==0){if(k==0){a=i;n/=a;}else if(k==1){b=i;}k++;}if(k==2){break;}}c=temp/(a*b);if(k<2 || a==b || b==c || c==a || c<2){cout<<"NO\n";}else if(a!=b && b!=c && c!=a){cout<<"YES\n"<<a<<" "<<b<<" "<<c<<endl;}}}return 0;}
0 Comments
If you have any doubts/suggestion/any query or want to improve this article, you can comment down below and let me know. Will reply to you soon.