C语言 您所在的位置:网站首页 C语言判断素数个数 C语言

C语言

2024-02-20 23:35| 来源: 网络整理| 查看: 265

素数,指的是大于1的整数中,只能被1和这个数本身整除的数 

注意:1不是素数

一.判断一个数是不是素数 方法一:一般方法

假设这个数是n,我们就拿这个数和从2到n-1的每个数去和这个数做取余操作,如果有一个数可以使得余数为0,则这个数不是素数,反之则这个数为素数。

//判断一个数是不是素数 #include int main() { int a; printf("请输入一个数:\n"); scanf("%d", &a); int t=1; for (int i = 2; i < a; i++) { if (a % i == 0) { t = 0; break; } } if (t == 0) { printf("%d 不是素数!\n", a); } else { printf("%d是素数!\n", a); } return 0; } 方法二: 不超过本身的1/2

每个数的因数中,其中一个不会超过本身的1/2;

比如:因为1*12=12  2*6=12  3*4=12  所以12的因数有1和12,2和6,3和4,每组因数中都有一个不会超过12这个数的1/2;

这样我们就可以对方法一优化一下

#include int main() { int a; printf("请输入一个数:\n"); scanf("%d", &a); int t=1; for (int i = 2; i < a/2; i++) { if (a % i == 0) { t = 0; break; } } if (t == 0) { printf("%d 不是素数!\n", a); } else { printf("%d是素数!\n", a); } return 0; } 方法三:不超过本身的开方

每个数的因数中,其中一个不会超过本身的开方;

比如:因为1*16=16  2*8=16 4*4=16  所以16的因数有1和16,2和8,4和4,每组因数中都有一个不会超过16这个数的开方;

这样我们就可以对方法二优化一下

#include #include int main() { int a; printf("请输入一个数:\n"); scanf("%d", &a); int t = 1; for (int i = 2; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有