如题所述
这个简单,
原理就是从最小的数开始向下循环,依次判断是否能同时被两数整除,如果是就是最大公约数,并且循环停下来。从最小数开始向上循环,依次判断是否能同时整除两数,如果是就是最小公倍数,并且循环停下来。
input "输入第一个自然数" to m
input "输入第二个自然数" to n
for i=min(m,n) to 1 step -1
if m%i=0 and n%i=0
?"最大公约数是",i
exit
endif
endfor
for i=max(m,n) to m*n
if i%m=0 and i%n=0
?"最小公倍数是",i
exit
endif
endfor
return
原理就是从最小的数开始向下循环,依次判断是否能同时被两数整除,如果是就是最大公约数,并且循环停下来。从最小数开始向上循环,依次判断是否能同时整除两数,如果是就是最小公倍数,并且循环停下来。
input "输入第一个自然数" to m
input "输入第二个自然数" to n
for i=min(m,n) to 1 step -1
if m%i=0 and n%i=0
?"最大公约数是",i
exit
endif
endfor
for i=max(m,n) to m*n
if i%m=0 and i%n=0
?"最小公倍数是",i
exit
endif
endfor
return
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-04-19
CLEAR
LOCAL a, b
INPUT "数1:" TO a
INPUT "数2:" TO b
LOCAL m, n, tmp
m = MAX(a, b)
n = MIN(a, b)
DO WHILE m <> 0
tmp = MOD(n, m)
n = m
m = tmp
ENDDO
? "最大公约数为:", n
? "最小公倍数为:", a*b/n
LOCAL a, b
INPUT "数1:" TO a
INPUT "数2:" TO b
LOCAL m, n, tmp
m = MAX(a, b)
n = MIN(a, b)
DO WHILE m <> 0
tmp = MOD(n, m)
n = m
m = tmp
ENDDO
? "最大公约数为:", n
? "最小公倍数为:", a*b/n