【如何求素数】试除法讲解

1.素数的定义

素数又称为质数,指的是在大于1的整数中 只能被1和这个数本身整除的数。
在了解了素数的定义之后,我们如何用C语言实现在屏幕上打印出100到200的素数呢?

这里我们就可以使用试除法,试除法的思路就是:我们给定一个数N范围在一百到两百之间,然后使用N除以2到N-1,如果都不能除尽则N为素数。

2.for套嵌使用求解素数

下面我们就用for循环来实现逻辑

在这里插入代码片
#include <stdio.h>
int main()
{
    
    
	int i = 0;
	int coust = 0;
	for (i = 100; i <= 200; i++)
	{
    
    
		int j = 0;
		int flag = 1;
		for (j = 2; j < i; j++)
		{
    
    
			if (i % j == 0)
			{
    
    
				flag = 0;
			}
		}
		if (flag == 1)
		{
    
    
			printf("%d\n", i);
			coust++;
		}
		
	}
	printf("coust=%d", coust);
	return 0;
}

上面flag的使用,将情况转化的十分巧妙,适合仔细品味。

3.试除法的算法优化

上图代码的逻辑我们很容易想到,但是再仔细想一想是不是还有可以优化的地方吗?
比如会被2整除的偶数就一定不是素数,所以说素数一定是奇数,所以我们就可以将第一个for的i++改为i+=2这就减少了循环的次数,减小了内存,加快了运行速度。
虽说以上的修改并没有 神之一手的优化,不过这是重要的思想 我们在写代码时一定要思考如何优化自己写的代码。

猜你喜欢

转载自blog.csdn.net/qq_43289447/article/details/127573633