求1-N之间的素数

一、什么是素数:

        素数(prime number)又称质数,有无限个。一个大于1的自然数,除了1和它本身外(因为1既不是素数,也不是合数),不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数.
比如:2,3,5,7,11,…等。

二、如何判断一个数是否为素数:

        该数除了1和它本身以外不再有其他的因数,通俗的讲,就是只能被1和这个数本身整除,不能被其它数整除
代码实现:

for (j = 2; j<i; j++)//j不能从1开始,因为1能整除任何数,所以j从2开始
{
   if (i%j == 0) 
        break;
   if (i == j)
       printf("%d ", i);
}

三、找出1-N之间的素数:

实现思路:
        先判断这个数是否为素数,如果是,输出这个数,如果不是,则判断下一个数是不是素数;

代码实现:

void FindSuShu(int n)
{
    int i = 0, j = 0;
    int count = 0;
    for (i = 1; i <= n; i++)
    {
        for (j = 2; j < i; j++)
        {
            if (i%j == 0)
                break;

        }
        if (i == j)
        {
            printf("%d ", i);
            count++;

            if (count % 5 == 0)
                printf("\n");
        }

    }
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    FindSuShu(n);
    printf("\n");
    return 0;
}

四、运行结果:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_42820622/article/details/81275732