C语言编程中判断素数的思路和方法

 2024-01-12 05:02:02  阅读 0

清华大佬花了三个月吐血整理了几百G资源免费分享! ....>>>

今天编程学习网就给大家讲解一下C语言编程中判断素数的思路和方法。 有需要的朋友可以参考:

素数也称为素数。 所谓质数,是指不能被除1和它本身之外的任何整数整除的数。 例如,17 是质数,因为它不能被 2 到 16 之间的任何整数整除。

思路1):因此,判断一个整数m是否为素数,只需将m除以2~m-1之间的每一个整数即可。 如果它不可整除,则 m 是素数。

思路2):判断方法可以简化。 m 不必除以 2 ~ m-1 之间的每个整数,只需除以 2 ~ 之间的每个整数即可。 如果 m 不能被 2 ~ 之间的任何整数整除,则 m 必须是素数。 例如,要判断17是否是质数,只需将17除以2到4之间的每个整数即可。由于它们不可整除,因此可以判断17是质数。

原因:因为如果m能被2~m-1之间的任意整数整除,那么它的两个因数必须有一个小于或等于,另一个大于或等于。 例如16可以被2、4、8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16,所以我们只需要确定是否有2到4之间的因数。可以。

想法1实现:#

int main() {

整数 n;

("请输入1-100之间的整数:\n");

scanf("%d", &n);

整数米 = 0;

for (int i = 2; i < n; i++ ) {

如果(n%i==0){

米++;

如果(m==0){

("%d是素数\n", n);

} 别的 {

("%d不是素数\n", n);

0;

想法2的实现:#

#

int main() {

整数 n;

("请输入1-100之间的整数:\n");

scanf("%d", &n);

整数 i = 0;

int q = sqrt(n);

对于 (i = 2; iq) {

("%d是素数\n", n);

} 别的 {

("%d不是素数\n", n);

0;

《C 和指针》4.14 - 2:

打印 1 到 100 之间的所有素数:

#

int main() {

整数数,;

(“1, 2”);

for (num = 3;num = num) {

(", %d", 数字);

(“\n”);

0;

结果:

1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97

补充:确定素数的4种方法示例#

#

//方法一:从1-n中逐一判断;

布尔(整数n)

{ for(int i=2;i

如果(n%i==0)

错误的;

真的;

//方法二:以待判断数n的平方根作为判断结束的条件。

//因为平方根后的数是n的最大因数,所以最大因数后的数对于判断该数是否为素数没有任何意义。

布尔(整数n)

{ for(int i=2;i

如果(n%i==0)

错误的;

真的;

//方法三:只需要判断一半的数字即可。 如果超过自身的一半,

//余数的结果永远不会是0,除非是数字的余数。

布尔(整数n)

{ int 我;

如果(n%2==0)

0;

for(i=3;i=n/2;i+=2){

如果(n%i==0)

0;

1;

//方法四:从3-n中,只判断奇数。 首先判断一个数的奇偶性。 如果是奇数,

//只对3到自身的奇数进行余数计算。 同样,如果是偶数,则一定不是素数。

布尔(整数n)

{ int i,j=1;

如果(n%2==0)

0;

别的{

对于(i=3;i

标签: 整数 判断 因子

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码