判断一个数是否是质数(素数)的方法

参考博客:https://blog.csdn.net/afei__/article/details/80638460

#include<stdio.h>
#include<math.h>
int f(int num)
{
    if (num <= 3) {
        return num > 1;
    }
    // 不在6的倍数两侧的一定不是质数
    if (num % 6 != 1 && num % 6 != 5) {
        return false;
    }
    int n = (int) sqrt((double)num);
    for (int i = 5; i <= n; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0) {
            return false;
        }
    }
    return true;
}

int main()
{
	for(int i=2;i<=1000;i++)
		if(f(i)) printf("%d\t",i);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41045071/article/details/82762126