大家好,今天小编关注到一个比较有意思的话题,就是关于筛素数C语言的问题,于是小编就整理了2个相关介绍筛素数C语言的解答,让我们一起看看吧。

  1. 使用筛选法找出100以内的所有质数?
  2. 在找质数的时候,为什么要划去2357的倍数?

使用筛选法找出100以内的所有质数

筛选法把不是质数的数找出来即可。

筛素数C语言-c语言筛法素数
(图片来源网络,侵删)

首先,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

那么,我们知道,尾数是偶数和5的数,都不会是质数。那么,筛掉尾数不是偶数和5,也就1、3、7、9。在看能被3、7整除,不能是质数,其它都是质数了。

筛素数C语言-c语言筛法素数
(图片来源网络,侵删)

在找质数的时候,为什么要划去2357的倍数

在质数的判断中,我们需要排除偶数,因为偶数中除了 2,其它偶数都不是质数。此外,如果一个数可以分解成两个比 1 大的整数的积,那么这个数就不是质数。所以我们只需要判断一个数是否能被奇数整除。

在判断奇数是否为质数时,我们通常会排除 3 的倍数、5 的倍数、7 的倍数等。这是因为***如一个数是 3 的倍数,那么这个数的末位数字一定是 0、3、6、9 中的一个数。这个规律同样适用于 5 的倍数和 7 的倍数。因此,我们可以事先排除掉 3、5、7 的倍数,缩小判定范围,减少计算次数,并且提高判断效率。

筛素数C语言-c语言筛法素数
(图片来源网络,侵删)

当然,这种方法仍然存在局限性,因为有可能存在比较大的质数恰好是 3、5、7 的倍数。但是,对于小的质数来说,这种方法还是比较有效的。

质数是本身和1能整除,其它都无法整除的数是2,3,5,7的倍数就能被它们整除,因此不是质数,要划去。而2,3,5,7本身的因数就只有它自己和1,所以是质数,应保留。

到此,以上就是小编对于筛素数C语言的问题就介绍到这了,希望介绍关于筛素数C语言的2点解答对大家有用。