HDU5391-Zball in Tina Town

来源:互联网 发布:博客助赢软件cpzyrj 编辑:程序博客网 时间:2024/04/29 21:41


初等数论中,威尔逊定理给出了判定一个自然数是否为素数充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大。

4的时候特判,在快速判断是否是素数。

#include<iostream>#include<cstring>#include<cstdio>#include<math.h>#include<algorithm>using namespace std;bool isPrimeNum(int num){     if (num <= 2)     {         return num == 2;     }     if (num % 2 == 0)     {         return false;     }     int iSqrt = sqrt(num);     for (int i = 3; i <= iSqrt; i+=2)     {         if (num % i == 0)         {             return false;         }     }     return true;}int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d",&n);        if(n==4) printf("2\n");        else if(isPrimeNum(n)) printf("%d\n",n-1);        else printf("0\n");    }    return 0;}



0 0