linux c开多线程算质数,C语言判断素数(质数)
这是一个C语言 while 循环的示例:判断一个整数 n(n>1)是否为素数(也成质数)。
问题分析
输入:一个整数n(n>1)。
输出:Yes or No。
如果一个整数 n(n>1)不能被 1 或 n 以外的正整数整除,那么 n 就是素数。因此,只要把 2 至 n-1 之间的每一个数字,分别作为除数,与 n 做除法,只要出现一次整除,就说明 n 不是素数;而一直没有出现整除现象,则说明 n 是素数。
一个整数的因子都是成对出现的,如果 x 能被 n 整除,n 是 x 的因子,x/n 同样是 x 的因子,成对的两个因子中(除了 1 和本身),都不会超过 n/2。因此,上面判断是否为素数时,用作除数的 2 至 n-1 之间的数字个数可以减半,用 2 至 n/2 之间的数字作为除数即可。
再进一步,可以把作为除数的数字范围缩小到 2~sqrt(n)(根号 n)。
另外 2 是最小的素数,直接输出“Yes”即可。大于 2 的整数才用上面的方法进行判断处理。
整除判断部分可以用 do-while 循环语句或者 while 循环语句实现,流程图如图 1 所示。
图 1:用 do-while 语句和 while 语句实现整除循环判断的流程图
算法描述和实现
1) 使用 do_while 语句
代码清单 1:使用 do-while 语句判断一个整数 n(n>1)是否为素数
#include
#include
int main( )
{
int n,i;
printf("输入一个大于1的整数:\n");
scanf("%d",&n);
if(n == 2)
printf("Yes\n"); //处理 2 的判断
else //处理 n>2 的判断
{
i = 1;
do
i++;
while(n % i != 0 && i <= sqrt(n)); //循环条件
if(n % i == 0)
printf("No\n"); //出现整除,非素数
else
printf("Yes\n"); //否则,是素数
}
system("pause");
return 0;
}
do-while 语句在判断之前就执行 i++ 一次,所以 i 的初始值为 1。
运行结果为:
输入一个大于1的整数:
97
Yes
2) 使用 while 语句
代码清单 2:使用 while 语句判断一个整数 n(n>1)是否为素数
#include
#include
int main( )
{
int n,i;
printf("输入一个大于1的整数:\n");
scanf("%d",&n);
if(n == 2)
printf("Yes\n"); //处理2的判断
else //处理n>2的判断
{
i = 2;
while(n % i != 0 && i <= sqrt(n)) //循环条件
i++;
if(n % i == 0)
printf("No\n"); //出现整除,非素数
else
printf("Yes\n"); //否则,是素数
}
system("pause");
return 0;
}
运行结果为:
输入一个大于1的整数:
177
No
linux c开多线程算质数,C语言判断素数(质数)相关推荐
- C语言判断素数的两种方法
C语言判断素数的两种方法 素数又称质数.所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除. 思路1):因此判断一个整数m是否是素数, ...
- c语言中prime的作用,C语言判断素数prime
<C语言判断素数prime>由会员分享,可在线阅读,更多相关<C语言判断素数prime(2页珍藏版)>请在人人文库网上搜索. 1.主函数:#include int prime( ...
- C语言判断素数(质数)O(sqrt(n))、O(sqrt(n)/2)、O(sqrt(n)/3)【素数分布规律】、口算
质数是指在大于1的自然数中,除了1和它本身外没有其他因数的自然数. 若所要判断的数对我们给出的可能因数除余结果均不为0,即该数不能被除1和本身外的其他整数整除,则该数为素数. 故本文主要针对所给可能因 ...
- C语言判断素数(求素数) 求两个数之间的所有质数
求素数/质数(采用的sqrt) #include <stdio.h> #include<math.h>//判断一个数是不是素数 int checkPrimeNumber(int ...
- c++第n小的质数_形形色色的素数 -- 质数定理
大家好,我是大老李.这集节目属于补课,因为我们讲了半天质数,还没有讲质数定理,虽然我在节目里已经多次提到质数定理. 那什么是质数定理?它是一系列有关质数数量和分布情况的定理和猜想.其中有一个最主要命题 ...
- C语言——判断素数的几种方法以及相关题目
目录 一,什么是素数 二,如何判断一个自然数为素数 三,相关题目 四, 总结 一,什么是素数 素数又称质数,是指在大于1的自然数中,因数仅有1和它本身的自然数 二,如何判断一个自然数为素数 思路一,由 ...
- 判断素数(质数)高效算法
最近看到一篇高效的素数判断算法文章,但是文章中有些部分写的还不够完整清晰,所以在此详细记录一下此算法理解过程.(理解此算法前应先明白使用 sqrt(num) 为判断条件判断素数的方法) 此算法产生的原 ...
- C语言判断素数方法之试除法
素数又称质数,指的是一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数,如2,3,5,7,11,13,17-.接下来让我们以打印区间[a,b]内所有素数为目标来探究一种判断素数 ...
- 判断素数/质数的快速算法
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数).--via维基百科 朴素算法: 1. def ...
最新文章
- 10年,4600万台!树莓派,生日快乐
- 揭秘高盛区块链报告:区块链技术在五大领域从理论走向实践 | 附报告下载
- linux c size_t ssize_t 简介
- java atomicfloat_Java:有没有AtomicFloat或AtomicDouble?
- 安天移动安全:Janus高危漏洞深度分析
- 类的主动使用与被动使用等
- 微信小程序销毁某一注册函数_微信小程序云开发API 删除一条记录
- JavaScript之DOM对象(Event事件)
- 油价下降,全国人民都高兴
- UVA 11478(差分约束 + 二分)
- Codejock.Xtreme.Toolkit.Pro.v15.3.1 vs2019可用
- java我的世界光影推荐_最棒的7款我的世界光影水反效果包
- C语言程序书写中 每行必须有分号,C语言课后习题答案
- 房地产大数据管理系统——房地产大数据融合平台
- 建立在线社交网络中的关系权重模型
- 怎样在Word和LaTeX中打出黑底的圆圈数字?
- maya导入abc动画_mayaamp;max文件导出fbx
- 2012移动互联网之人在囧途
- 移动硬盘插入提示需要格式化RAW_学会自己判断移动硬盘故障!如何在保数据的情况下进行正确处理!...
- 安装vue-cli创建项目的时候 gyp ERR! build error的npm包遇到以下错误