基本素数判别法:正整数n是素数,当且仅当它不能被任何一个小于sqrt(n)的素数整出。
应用:判断一个数n是否为素数.
输入:输入数据有多组,每组一个数n(0<n<2 000 000 000)
输出:若是素数输出“YES”,否则输出”NO“
输入样例:1
2
3
4
输出样例:NO
YES
YES
NO
分析:sqrt(2 000 000 000)<50 000, 因此打一个1~50 000的素数表,将1~50 000内的素数存入表中,在1~sqrt(n)内判断是否存在一个素数能整除n,若存在则n为合数,反之,则为素数。
代码:
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
#define N 50001
bool isprime[N];
int prime[N],nprime;
vo