约素

来源:互联网 发布:ubuntu 14.04 jdk1.6 编辑:程序博客网 时间:2024/03/29 16:51

Description

判断一个正整数n的约数个数是否为p,其中p是素数。

Input

第一行给测试总数T(T <= 10000)。

接下来有T行,每行有两个数字n(1 <= n <= 1000000000)和p(2 < p <= 1000000000)。

Output

每组测试数据输出一行,如果n的约数个数是p,输出“YES”,否则输出“NO”。

#include<stdio.h>#include<math.h>int main(){    int t,n,p;    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&n,&p);        int i,num=0;        for(i=2;i<=sqrt(n);i++)        {            if(n%i==0)                num+=2;//每一次整除有两个因子,被除数和商            if(i*i==n)                num--;//被除数和商相同,num只加一次        }        if(n==1)            num++;//1的因子只有本身        else            num+=2;//包含1和n本身        if(num==p)            printf("YES\n");        else            printf("NO\n");    }    return 0;}


0 0
原创粉丝点击