#RJ0014. 01数

01数

题目描述

小 L 又喜欢上一种数字——叫做 01数

01数 的定义:如果一个数字 NN 能在 (2K1018)(2≤K≤1018) 中找到至少 22 个不同的 KK 值,满足 NNKK 进制下的每一位都不大于 11 ,则 NN 就是一个01数

现在给你一个数字 NN ,希望你帮小 L 判断这个数字是否是一个01数

输入格式

一行一个整数 NN

输出格式

如果 N 不是 01数 ,则输出一行,一个字符串 NO

否则,输出两行,

第一行,一个字符串 YES

第二行,用空格隔开的两个整数,代表整数 NN 的符合条件的 22KK 值。

K 可能不止 2 个,所以答案不唯一,根据本题的数据范围,你肯定会知道什么。

样例数据

但是样例对你的帮助可能并不大

输入样例1

2

输出样例1

NO

输入样例2

4

输出样例2

YES
2 3

样例2解释:

4422 进制下为:(100)2(100)_2,满足条件——每个位数均不大于 11

4433 进制下为:(11)3(11)_3,满足条件——每个位数均不大于 1 。

数据范围

  • 对于 100100% 的数据,1018<N<1011451410^{18} <N<10^{114514}