很多人在学习编程,首先实现的就是质数生成,然后就是最大公约数、最小公倍数的生成。
搞业务开发的程序员,在日后往往以框架学习、项目搭建为主,对底层代码的处理较少,但新手学会这些东西还是能增进对代码的理解的。
质数是最简单的代码,这里我们用多个语言实现一下。
先试试 C 语言
int isPrime(int number) {
int result = 1;
for (int division = 2; division < number; division++) {
if (number % division == 0) {
result = 0;
}
}
return result;
}
再试试 Python
def isPrime(number):
result = 1
for division in range(2,division):
if number % division == 0:
result = 0;
return result
我这里没有对 number
进行类型检查、数值范围判断,主要是为了方便演示,有需要的可以自行添加。
其他语言包括 Java、JS、C# 都大同小异。
约数就是能约分的数,比如 12 12 12 能跟 1 , 2 , 3 , 4 , 6 , 12 1,2,3,4,6,12 1,2,3,4,6,12 约分,那 12 12 12 就有 6 6 6 个约数。因为约分是对称的,所以约数是成对出现的,约数量是偶数。
公约数就是满足多个数能约分,比如 18 18 18 能被 1 , 2 , 3 , 6 , 18 1,2,3,6,18 1,2,3,6,18 约分,那 12 , 18 12,18 12,18 就有 1 , 2 , 3 , 6 1,2,3,6 1,2,3,6 四个公约数,一般最大公约数研究的多。
四种求最大公约数算法_或许没看到的博客-CSDN博客_最大公约数算法
欧几里得算法求最大公约数与最小公倍数(思路很简单)-Dotcpp编程社区
倍数就是若干倍的数,比如 2 2 2 的倍数有 2 , 4 , 6 , 8 , . . . , 2 k , . . . 2,4,6,8,...,2k,... 2,4,6,8,...,2k,...
公倍数就是满足多个数有倍数,比如 3 3 3 的倍数有 3 , 6 , 9 , 12 , . . . , 3 k , . . . 3,6,9,12,...,3k,... 3,6,9,12,...,3k,... , 2 2 2 和 3 3 3 的公倍数有 6 , 12 , 18 , . . . , 6 k , . . . 6,12,18,...,6k,... 6,12,18,...,6k,... ,一般最小公倍数研究较多。
C 语言代码
int gcd(int a, int b)
{
if(b==0)
return a;
return gcd(b, a%b);
}
int lcm(int a, int b)
{
return a / gcd(a, b) * b;
}
如今看来代码还是有点粗糙,日后有时间会进行更新。