- #include <stdio.h>
- #include <math.h>
- #define LL long long
- bool f(LL n)
- {
- if(n == 2 || n == 3 || n == 5)
- return true ;
- if(n % 2 == 0 || n % 3 == 0 || n % 5 == 0 || n == 1)
- return false ;
- LL i = 7 ;
- int m = (int)(sqrt(n)) ;
- while(i <= m)
- {
- if(m % i == 0)
- return false ;
- i += 4 ;
- if(m % i == 0)
- return false ;
- i += 2 ;
- if(m % i == 0)
- return false ;
- i += 4 ;
- if(m % i == 0)
- return false ;
- i += 2 ;
- if(m % i == 0)
- return false ;
- i += 4 ;
- if(m % i == 0)
- return false ;
- i += 6 ;
- if(m % i == 0)
- return false ;
- i += 2 ;
- if(m % i == 0)
- return false ;
- i += 6 ;
- }
- return true ;
- }
- int main()
- {
- LL n ;
- while(scanf("%lld", &n)!=EOF)
- {
- if( f(n) )
- printf("YES\n");
- else
- printf("NO\n");
- }
- return 0;
- }
快速素数判断的方法
最新推荐文章于 2024-12-05 08:07:54 发布