不会写 看到可以尽快解决吗?

R语言编程,
最大公约数指两个或多个整数的共有约数中最大的一个;最小公倍数指两个或多个整数的共有倍数(除0外)最小的一个。
1.编写一个函数divisor,对任意输入的正整数x列出其所有的约数(包括1与其自身),并计算divisor(12345)。
2.编写一个函数fun,对任意输入的两个正整数x和y,如果x+y为奇数,则返回x和y的最大公约数a;否则,返回x和y的最小公倍数b。
3.计算fun(12342,54321)和fun(234,126)。

img

img


源程序:


divisor <- function(x) {
for ( i in seq(1,x)) {

if (x %% i == 0 )
{
print(i)
}
next
}
}

fun <- function(a,b) {
if ((a+b) %% 2 != 0 )
{
while ( a!=b)
{
if (a>b)
{ a=a-b }
else {
b=b-a}
}
print(a)
}
else {

  if (a> b)
{   greater = a }

else
{ greater = b }
while(1)
{
if((greater %% a == 0) && (greater %% b == 0))
{
print(greater);
break;
}
greater=greater+1;
}

}

}

博主可以参考一下链接