#include #include #include #include #include #include #include #include using namespace std; #define REP(i,a,b) for(i=a;i 0) { if(n&1) res = res * x; x = x * x; n >>= 1; } return res; } /* prime_rekkyo(prime,n)は  n以下の素数をまで2,3,…と格納していきます */ void prime_rekkyo(int prime[],int n) { int i,j,k; int a = 0; prime[a++] = 2; for(i=3;i<=n;i+=2) { k=0; for(j=3;j*j<=i;j+=2) { if(i%j==0) { k=1; break; } } if(k==0) prime[a++] = i; } } int main(void) { ull i=1,j,k; ull n; static int prime[10000000]; prime_rekkyo(prime,10000000); cin >> n; char no = 1; if(n <= 2) no = 1; else { for(j=3;j<=n;j++) { if(n%j==0 && j != prime[i]) { no = 0;break; } else if(j == prime[i]) i++; } } if(no == 0) cout << "YES" << endl; else cout << "NO" << endl; return 0; }