判断一个正整数n的约数个数是否为p,其中p是素数。
Input
第一行给测试总数T(T <= 10000)。
接下来有T行,每行有两个数字n(1 <= n <= 1000000000)和p(2 < p <= 1000000000)。Output
每组测试数据输出一行,如果n的约数个数是p,输出“YES”,否则输出“NO”。
Sample Input
564 7911 2331080 131024 1120170211 1913
Sample Output
YESNONOYESNO
#include <cmath>
#include <cstdio>
using namespace std;
int main()
{
long long a,b,ans;
long long i,n;
long long s;
cin>>n;
while(n--)
{
ans=1;
scanf("%lld %lld",&a,&b);
s=sqrt(a);
if(s*s!=a)
{
printf("NO\n");
continue;
}
else
{
for(i=1;i<s;i++)
{
if(a%i==0)
ans+=2;
}
if(ans==b)
printf("YES\n");
else
printf("NO\n");
}
}
return 0;
}