VF怎么样写输入3个数求最小公倍数和最大公约数

VF怎么样写输入3个数求最小公倍数和最大公约数

CLEAR
input "第一个数:" to n1
input "第二个数:" to n2
input "第三个数:" to n3
n=0
lflag=.t.
gy=.t.
DO while lflag
n=n+1
k=MAX(n1,n2,n3)
FOR j=k to 1 step -1
IF INT(n1/j)=n1/j
if INT(n2/j)=n2/j
if INT(n3/j)=n3/j .and. gy
?"最大公约数:",j
gy=.f.
EXIT
ENDIF
ENDIF
ENDIF
ENDFOR
IF INT(n/n1)=n/n1 .and. INT(n/n2)=n/n2 .and. INT(n/n3)=n/n3
?"最小公倍数:",n
lflag=.f.
ENDIF
ENDDO
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-12-19
VF的语法不熟悉,这个是C语言的,算法供参考:

最大公倍数:
int bei(int x,int y)
{
int i=1,j=1,k=1;
while(i)
{
if(x*j==y*k)return(x*j);
else if(x*j<y*k)j++;
else k++;
}
}
最大公约数
int yue(int x,int y)
{
int i,j,k,m;
i=1;
k=min(x,y)
while(i<k/2)
{
for(j=2;j<k/m;j++)
if(x%j==0&&y%j==0)m=m*j;
if(j=k/m)i=k/2;
}
return (m);
}
相似回答