千家信息网

C语言中如何求素数

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要讲解了"C语言中如何求素数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C语言中如何求素数"吧!前言素数又称质数。所谓素数是指除了 1 和
千家信息网最后更新 2024年11月22日C语言中如何求素数

这篇文章主要讲解了"C语言中如何求素数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"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实现:

#include int main() {    int n;    printf("请输入一个1-100之间的整数:\n");    scanf("%d", &n);     int m = 0;    for (int i = 2; i < n; i++ ) {        if(n % i  == 0) {            m++;        }    }    if (m == 0) {        printf("%d是素数\n", n);    } else {        printf("%d不是素数\n", n);    }    return 0;}

思路2实现:

#include #include int main() {    int n;    printf("请输入一个1-100之间的整数:\n");    scanf("%d", &n);     int i = 0;    int q = sqrt(n);    for (i = 2; i <= q; i++ ) {        if(n % i  == 0) {            break;        }    }    if (i > q) {        printf("%d是素数\n", n);    } else {        printf("%d不是素数\n", n);    }     return 0;}

《C与指针》4.14 - 2:

打印1~100之间所有质数:

#include int main() {    int num, divisor;    printf("1, 2");    for (num = 3; num <= 100; num += 2) {        for(divisor = 3; divisor < num; divisor +=2 ) {            if (num % divisor == 0) {                break;            }        }         if(divisor >= num) {            printf(", %d", num);        }    }    printf("\n");    return 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种方法实例

#include#include//方法一:从1-n挨个判断; bool isPrimel_1(int n) {       for(int i=2;i

感谢各位的阅读,以上就是"C语言中如何求素数"的内容了,经过本文的学习后,相信大家对C语言中如何求素数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0