当前位置:网站首页>求素数的三种方法
求素数的三种方法
2022-08-09 15:05:00 【我好闲*】
目录
素数
定义:在正整数范围内,大于1平且只能被1和自身整除的数。
1.方法一
采用简单粗暴方法

我也不多说废话,一切尽在代码中。
求100-200之间的素数
素数:只能被1和自身整除
//求素数
#include <stdio.h>
int main()
{
int i = 0, j = 0, t = 0;
int count = 0; //计数
for (i = 100; i <= 200; i++)
{
//j的取值范围2-(i-1)
//对素数进行标记
t = 0;
for (j = 2; j <= i; j++)
{
if (i % j == 0)
{
t++; //素数:只能被1和自身整除
}
}
if (t == 1) //素数:只能被1和自身整除,所以t=1的为素数
{
printf("%d ", i);
count++; //计数
}
}
printf("\ncount=%d\n", count);
return 0;
}
2.方法二
进一步优化

#include <stdio.h>
//素数代码优化
//求100-200之间的素数
//素数:只能被1和自身整除
int main()
{
int count = 0; //计数
int i = 0;
for (i = 100;i <= 200;i++)
{
//判断是否是素数
int flag = 1; //利用flag标记素数
int j = 2;
//j的取值范围2-(i-1)
for (j = 2;j < i;j++)
{ //拿j试除i
if (i % j == 0)
{
flag = 0; //flag为0的为非素数
break; //如果在2-(i-1)范围内遇到一个能将i整除的数字,跳出for (j = 2;j < i;j++){...}循环
}
}
if (1 == flag)//这样可读性更高
{
count++;
printf("%d ", i);
}
}
printf("\ncount=%d\n", count);
return 0;
}3.方法三
最优方案

//最后的优化
//因为i=m*n;
// 16=2*8; 16=4*4;
//如果i能被2-(i的开平方)之间的某个数数整除,则i不是素数
//例如16,能被2-4(16的开平方)的2或者4整除,所以16不是素数
#include <stdio.h>
#include <math.h>
int main()
{
int count = 0; //计数
int i = 0;
for (i = 100;i <= 200;i++)
{
//判断是否是素数
int flag = 1; //利用flag标记素数
int j = 2;
//j的取值为2-sqrt(i)
for (j = 2;j <= sqrt(i);j++)
{ //拿j试除i
if (i % j == 0)
{
flag = 0; //flag为0的为非素数
break; //如果在2-sqrt(i)范围内遇到一个能将i整除的数字,
//跳出for (i = 100;i <= 200;i++){...}循环
}
}
if (1 == flag) //这样可读性更高
{
count++;
printf("%d ", i);
}
}
printf("\ncount=%d\n", count);//计数
return 0;
}
总结
可以看出从方法一到方法三,程序的执行次数在逐步减少,效率在不断的提高,希望这些方法对你有所启发。

边栏推荐
猜你喜欢
随机推荐
JS字符串对象基础操作方法
Heap series _0x04: Internal structure of heap (_HEAP=_HEAP_SEGMENT+_HEAP_ENTRY)
爬虫实战 某问答网站乎
客户端媒体引擎框架
Dolphin Scheduler 2.x版本部署篇
九章云极DataCanvas APS机器学习平台获得中国信通院“领先级”评级
com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character
Altera FPGA 储存单元IP核之RAM、FIFO
yum安装mariadb数据库之后启动时提示 Failed to start mariadb.service: Unit not found
display属性的使用
字典树、并查集相关:实现Trie、搜索推荐系统、朋友圈、被围绕的区域(未做) ...
Excel文件解析
2022华数杯A题: 环形振荡器的优化设计 - 思路
学编程的第六天
writeUP-[第五空间2019 决赛]PWN5(待进一步完善待研究内容)
(十)打包和项目部署
VRRP详解与配置实例
软件测试工具清单
学习编程的第四天
2022高教社杯 国赛数学建模 B题思路









