?? 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 + -