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

底层逻辑:

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

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



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


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

例如:除法运算式

65 ÷8  = 8余1

那么

65 / 8 = 8

65 %8 = 1

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

    TIP:

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

3,判断1000~2000年的闰年

方法:

宝藏例题(欧几里得算法+素数的三种境界………)_辗转相除法_03

这二者均是闰年。

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

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

两种方法

&&并且

||    或者


4·打印素数

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

这类代码需要分类讨论。

宝藏例题(欧几里得算法+素数的三种境界………)_最大公约数_06

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

另一种分类(进阶版)

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

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

至尊版:

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

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

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

宝藏例题(欧几里得算法+素数的三种境界………)_辗转相除法_09