What is the smallest number divisible by each of the numbers 1 to 20?
[my resolutio]
find the prime number first.beside the prime number ,find every number's smallest factor,then delete the equals factor.finally,multiple all the factors and prime number.
sample code as blow:
参考代码如下:
; Returns 1 if the number is a whole number (integer).
alias is_int { if ($int($1) == $1) { return 1 } | else return 0 }
; 5
[code=python]
alias math_5_f {
; Gets a number, and returns it's deviders.
; 10 will return 2 5, 20 will return 2 2 5, etc.
if (!$1) || ($1 !isnum) || ($1 <= 0) { halt }
var %i = 2, %num = $1, %t, %ticks = $ticks
; If number is 1, return 1.
if ($1 == 1) { %t = 1 | goto end }
; Loop until number doesn't devide by 2 anymore.
while ($is_int($calc(%num / %i))) { var %t = %t %i, %num = $calc(%num / %i) }
inc %i
; Loop from 3 and in steps of 2
while (%i <= %num) {
; Loop in each loop until number doesn't
; devide anymore by %i.
while ($is_int($calc(%num / %i))) { var %t = %t %i, %num = $calc(%num / %i) }
inc %i 2
}
:end
if ($isid) { return %t }
else { echo -a %t Time: $calc($ticks - %ticks) }
}
alias math_5_nums {
; Main function, gets a number and returns
; the smallest number that can be devided
; by each of the numbers from 1 until it.
if (!$1) { halt }
if ($hget(math_5)) { hfree -s math_5 }
; Creates a hash table
hmake -s math_5 10
var %i = 1, %temp, %ticks = $ticks
; looping through numbers until $1 (given number).
while (%i <= $1) {
var %temp = $math_5_f(%i), %n
while ($numtok(%temp,32)) {
%n = $gettok(%temp,1,32)
if ($findtok(%temp,%n,0,32) > $hget(math_5,%n)) || (!$hget(math_5,%n)) { hadd math_5 %n $findtok(%temp,%n,0,32) }
while ($istok(%temp,%n,32)) { %temp = $remtok(%temp,%n,32) }
}
inc %i
}
var %i = 1, %temp = 1
while (%i <= $hget(math_5,0).item) { %temp = $calc(%temp * $hget(math_5,%i).item ^ $hget(math_5,$hget(math_5,%i).item)) | inc %i }
echo -a Answer: %temp Time: $calc($ticks - %ticks) ms
hfree -s math_5
}
分享到:
相关推荐
在VB中,我们可以先编写一个函数来计算两个数的最大公约数,然后利用这个函数来求最小公倍数。以下是一个简单的VB代码实现: ```vb ' 计算两个数的最大公约数 Function GCD(a As Integer, b As Integer) As Integer...
vba求最小公倍数
首先,学生们在面对“至少要用多少块地砖才能铺成一个正方形”的问题时,有的学生直接求出45和30的最小公倍数得到90块,认为这是“至少”的含义。然而,另一位学生提出不同的见解,通过计算发现其实只需要6块地砖,...
本文将深入探讨C++编程中求最小公倍数的几种常见方法,并结合相关标签“联合公倍数”进行讨论。 1. **直接公式法**: 最小公倍数可以通过两个数的乘积除以它们的最大公约数(GCD,Greatest Common Divisor)得到。...
计算最小公倍数通常涉及到先求出这些数的最大公约数,再利用公式:`LCM(a, b) = |a * b| / GCD(a, b)`。但是,提供的代码片段直接通过循环找到了满足条件的最小公倍数: ```csharp using System; namespace Test1_...
实际上,该代码主要实现了求最大公约数(Greatest Common Divisor,GCD)的功能,并错误地尝试通过调用`min`函数来计算最小公倍数。下面,我们将详细分析代码中的问题,并提供正确的解决方案。 ### 错误分析 #### ...
本主题主要关注求最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)的三种常见算法,通过流程图的方式进行阐述。下面我们将详细探讨这五种算法及其流程。 1. 辗转相除法...
穷举法求最大公约数流程图和穷举法求最小公倍数盒图都将展示这个过程,通过一系列并行和串行的矩形来描述循环和条件判断。 在穷举法求最大公约数的流程中,步骤如下: 1. 设置一个变量lcm初始化为较小的数。 2. ...
求最小公倍数 本文档主要讲解了求最小公倍数的四种方法:列举法、筛选法、分解质因数法和短除法。下面将详细介绍每种方法。 列举法 列举法是通过列举出两个数的倍数来寻找它们的最小公倍数。例如,求10和15的最小...
《求最小公倍数解决实际问题》 在数学中,最小公倍数(LCM)是两个或多个整数共有的倍数中最小的一个。它在解决实际问题中扮演着重要角色,例如在安排资源、规划工程或者设计物体尺寸等方面。本课时主要围绕如何...
这时可以扩展算法,先计算任意两个数的最小公倍数,然后依次与其他数求最小公倍数,直至处理完所有数。这种方法称为“逐步扩展法”。 总之,计算两个正整数的最小公倍数是基础数学和计算机科学中的常见问题。理解并...
"易语言经典算法求最小公倍数"是一个关于如何使用易语言编程解决特定数学问题的实例。易语言是一种面向对象、简单易学的中文编程语言,它使得编程过程更为直观,适合初学者和专业人士。在这个例子中,我们将探讨如何...
用LabVIEW求最大公约数和最小公倍数。可以自行选择数据。
c++求最大公因数和最小公倍数,利用最大公因数法求最小公倍数。
基于欧几里得算法,我们可以利用以下性质求最小公倍数:如果a和b的最大公约数为d,则它们的最小公倍数为a * b / d。这是因为a和b能被d整除,所以a * b也是d的倍数。而LCM(a, b)是最小的这样的倍数。 现在,我们扩展...
需要的可以下来看看*************************************
这个“Delphi求最小公倍数.rar”压缩包文件很可能包含了一个使用Delphi编写的示例程序,该程序用于计算两个或多个整数的最小公倍数(LCM)。最小公倍数是能被所有输入数值整除的最小正整数。理解这个概念并能够用...
基于FPGA开发板的两位数求最大公约数和最小公倍数的设计,该设计中利用辗转相减法求得公约数与公倍数,且两个数的数值可通过按键修改,设计灵活可靠。该设计基于vivado开发,并带有testbench文件,方便仿真学习。
本主题聚焦于一个经典的C语言编程问题——求两个整数的最小公倍数(LCM)。理解并解决这类问题对于学习C语言基础和算法设计至关重要。 最小公倍数是指能够同时被两个或两个以上整数整除的最小正整数。求解最小公...