当前位置:网站首页>Three ways to find prime numbers
Three ways to find prime numbers
2022-08-09 17:48:00 【I'm free*】
目录
素数
定义:在正整数范围内,大于1Flat and can only be1和自身整除的数.
1.方法一
Use simplistic methods

我也不多说废话,一切尽在代码中.
求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)
//Mark prime numbers
t = 0;
for (j = 2; j <= i; j++)
{
if (i % j == 0)
{
t++; //素数:只能被1和自身整除
}
}
if (t == 1) //素数:只能被1和自身整除,所以t=1is a prime number
{
printf("%d ", i);
count++; //计数
}
}
printf("\ncount=%d\n", count);
return 0;
}
2.方法二
进一步优化

#include <stdio.h>
//Prime code optimization
//求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为0is a non-prime number
break; //如果在2-(i-1)Meet a capable general within the rangei整除的数字,跳出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的开平方)Divisible by a number in between,则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为0is a non-prime number
break; //如果在2-sqrt(i)Meet a capable general within the rangei整除的数字,
//跳出for (i = 100;i <= 200;i++){...}循环
}
}
if (1 == flag) //这样可读性更高
{
count++;
printf("%d ", i);
}
}
printf("\ncount=%d\n", count);//计数
return 0;
}
总结
It can be seen from method one to method three,The number of executions of the program is gradually decreasing,Efficiency is constantly improving,Hope these methods inspire you.

边栏推荐
猜你喜欢
随机推荐
域控同步相关命令
MySQL必知必会(二)
yum安装mariadb数据库之后启动时提示 Failed to start mariadb.service: Unit not found
排序相关:数组的相对排序、最小的k个数(快排)、合并区间、翻转对 ...
初始C语言(2) C生万物
2022华数杯建模C题思路解析
继承和选择器的权重
深究equals
Lens 创建 Service Accounts 及分配权限
2022高教社杯思路汇总A题B题C题D题
Go语言基础(十一):反射
Mysql学习(四)
辨析fork与vfork
微信小程序学习记录(一)
“泰迪杯”数据分析职业技能大赛B题 学生校园消费行为分析---复盘
(七)小思同学和性能
List,Set,Map,Queue,Deque,Stack遍历方式总结
1. Introducing GEE and Geemap
后代选择器和子代选择器
0. About The Author And Preface









