📄 gcd.cpp
字号:
#include <iostream.h>
#include <math.h>
typedef long int NUM;
static NUM out1=1;
static NUM out2=1;
NUM lcm(NUM k); //求最小公倍数;
NUM gcd(NUM k); //求最大公约数;
void main()
{
NUM input=1,n=0;
cout<<"OK!"<<endl;
cout<<"请输入数据(请以0结束输入):"<<endl;
while(input!=0) //验证输入数据是否有效
{
while (!(cin>>input))
{
cout<<"Error!"<<endl;
cin.clear();
char buffer[1024];
cin.getline(buffer,1024);
}
n++;
out1=lcm(input); //每接收到一个数字就调用函数开始计算
if(n==1)
out2=input; //为求最大公约数需用第一个值初始化out2;
out2=gcd(input);
}
cout<<"最小公倍数为:"<<out1<<endl;
cout<<"最大公约数为:"<<out2<<endl;
}
NUM lcm(NUM k)
{
NUM i;
for(i=out1;i<=out1*k;i++)
if(i%out1==0&&i%k==0) //找到第一个既能被out1整除又能被k整除的最小整数;
{
out1=i;
break;
}
return out1;
}
NUM gcd(NUM k)
{
NUM i;
for(i=out2;i>=1;i--) //找到第一个既能整除out2又能整除k的最大整数;
if(out2%i==0&&k%i==0)
{
out2=i;
return out2;
}
return out2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -