三個程式,判斷一個數是否爲素數,運算量依次遞減。
//函數->判斷素數
bool IsPrime(int num)
{
for (int i = 2; i < num; i++) {
if (num % i == 0) return 0;
}
return 1;
}
int main()
{
int n = 1234567;
if (IsPrime(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
//函數->判斷素數
bool IsPrime(int num)
{
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) return 0;
}
return 1;
}
int main()
{
int n = 1234567;
if (IsPrime(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
//函數->判斷素數
bool IsPrime(int num)
{
if (num == 2 || num == 3) //排除兩個小素數
return 1;
if (num % 6 != 1 || num % 6 != 5) //不在6或6的倍數兩側的均不是素數;
return 0;
for(int i = 5; i <= sqrt(num); i+=6) {
if (num % i == 0 || num % (i+2) == 0) {
return 0;
}
}
return 1;
}
int main()
{
int n = 1234567;
if (IsPrime(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}