宝藏例题(欧几里得算法+素数的三种境界………)

简介: 宝藏例题(欧几里得算法+素数的三种境界………)

1,写代码将三个数从大到小输出

底层逻辑:

  • 首先,定一个不变的顺序,A>B>C-------------三个坑
  • 再想着把三个数顺序的放在三个坑中
  • 假设三者的大小关系进行排序,需要进行三次
  • 临时变量tmp不需要重新设置

image.png



2,计算最大公约数---------辗转相除法/欧几里得算法


%作为运算符是用来取余的,/是除法运算。

例如:除法运算式

65 ÷8  = 8余1

那么

65 / 8 = 8

65 %8 = 1

image.png

   TIP:

  • 对%和/概念的区分,还需注意(巧计:在计算最大公约数时,用的都是%)
  • 在运用while循环时,()内为判断条件,等于0就是假,直接跳出。所以可以利用这一特性,当取模为0时,就跳出循环。

3,判断1000~2000年的闰年

方法:

image.png

这二者均是闰年。

image.png

image.png

两种方法

&&并且

||    或者


4·打印素数

素数的定义:只能被1和自身整除的数为素数。

这类代码需要分类讨论。

image.png

TIP:分类时应该想清楚另一种情况,为何会跳出来,应该是i==j

另一种分类(进阶版)

image.png

优点:代码形式类似,但试除的次数少了许多。

至尊版:

image.png

在奇数里面找素数,偶数直接跳过,时间直接节省了一半

自我反思:在第二个for循环括号问题的处理上,老是出问题!

image.png

相关文章
|
算法
初阶OI素数算法——埃拉托尼斯筛
时间复杂度比较优秀且易于理解的素数筛选法
91 0
|
5月前
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
|
5月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
50 0
|
7月前
|
算法 Serverless 数据安全/隐私保护
RSA算法中,为什么需要的是两个素数?
PrimiHub是密码学专家团队开发的开源隐私计算平台,关注数据安全、密码学等领域。RSA算法使用两个素数确保安全,因为它们的乘积易于计算,但分解困难,形成加密基础。算法涉及选择大素数、计算乘积、生成公私钥对。加密时,消息通过公钥变形;解密则需私钥,安全性依赖于大数分解问题的复杂性。
|
8月前
|
算法 数据安全/隐私保护
什么是扩展欧几里得算法?
【5月更文挑战第13天】什么是扩展欧几里得算法?
130 3
|
存储 算法 Python
信息学奥赛 试除法:高效筛选素数的算法
本文介绍了在Python代码中如何使用试除法高效筛选素数。
142 0
|
8月前
|
算法 Python
Python欧几里得算法找最大公约数
Python欧几里得算法找最大公约数
89 0
|
8月前
|
算法 搜索推荐 程序员
C语言第二十二练——扩展欧几里得算法
C语言第二十二练——扩展欧几里得算法
73 0
|
8月前
|
机器学习/深度学习 存储 算法
数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
110 0
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
74 0

热门文章

最新文章