当前位置:网站首页>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.

边栏推荐
猜你喜欢
随机推荐
2022华数杯A题 B题 C题 思路汇总
(七)小思同学和性能
详解VLAN与划分广播域
学编程的第七天
【中英文目录】导读
MySQL必知必会(一)
学编程的第十一天
路由概述与静态配置ip
1. Introducing GEE and Geemap
后代选择器和子代选择器
vmware workstation 未能启动vmware
com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character
第三章:GEE数据的使用(3.4-3.11)
学编程的第五天
第二章:创建交互式地图(2.1-2.3)
C语言知识细节点(二)
Heap series _0x04: Internal structure of heap (_HEAP=_HEAP_SEGMENT+_HEAP_ENTRY)
如何用栈实现队列
学习编程的第四天
Dolphin Scheduler 2.x版本部署篇









