Problem Description
Oregon Maple was waiting for Bob When Bob go back home. Oregon Maple asks Bob a problem that as a Positive number N, if there are only four Positive number M makes Gcd(N, M) == M then we called N is a D_num. now, Oregon Maple has some Positive numbers, and if a Positive number N is a D_num , he want to know the four numbers M. But Bob have something to do, so can you help Oregon Maple?
Gcd is Greatest common divisor.
Input
Some cases (case < 100);
Each line have a numeral N(1<=N<10^18)
Output
For each N, if N is a D_NUM, then output the four M (if M > 1) which makes Gcd(N, M) = M. output must be Small to large, else output “is not a D_num”.
mn
Sample Input
6
10
9
Sample Output
2 3 6
2 5 10
is not a D_num
模板:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int S=5;
ll factor[128],tot;
ll gcd(ll a,ll b){
return b==0?a:gcd(b,a%b);}
ll qmul(ll a,ll b,ll c){
ll ans=0;
a%=c,b%=c;
while(b){
if(b&1){
ans+=a;
if(ans>c)ans-=c;
}
a<<=1;;
if(a>c)a-=c;
b>>=1;
}
return ans;
}
ll qpow(ll a,ll b