题目描述
ADA Ⅱ型数是指能表达成 p^2 与 q^3 两者之乘积的整数,p和q均大于1且不相等。72=2^3 * 3^2, 是最小的ADA Ⅱ型数。给定一个整数n,判定其是否为ADA Ⅱ型数。
输入
少于4000行数据组成,每行一个整数n(0<n<2^31)。
输出
每个整数n对应一行输出,如果是ADA Ⅱ型数,则输出一行YES,否则输出一行NO。
样例输入 Copy
1
72
样例输出 Copy
NO
YES
代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
double n;
double q,p;
while(scanf("%lf",&n)!=EOF)
{
for( q = 2; q<pow(n,1.0/3); q++)
{
p = sqrt(n/pow(q,3));
if(p==(int)p && p!=q && q!=1)
{
printf("YES\n");
break;
}
}
if( q>=pow(n,1.0/3))
printf("NO\n");
}
return 0;
}