gcd.cpp 求最大公因數
/* 輸入 {a,b} > 0 計算 a,b 的最大公因數 */
#include <iostream>
using namespace std;
int main()
{
int a,b;
while ( cin >> a >> b)
{
cout << a << "," << b << " 的 gcd ";
int c=a%b;
while( c )
{
a=b;
b=c;
c=a%b;
}
cout << b << endl;
}
return 0;
}
/*
執行範例
D:\cpp>gcd
100 55
100,55 的 gcd 5
1965 1155
1965,1155 的 gcd 15
^Z
*/
a的b次方÷1000取餘數
/* 輸入 1<{a,b}<1000 計算 a^b(a的b次方) 取最後三位數 */
#include <iostream>
using namespace std;
int main()
{
int a,b;
while( cin >> a >> b)
{
int p=1;
for(int i=1; i<=b; ++i)
{
p*=a; //乘 b 次
p %= 1000; // 每次皆除 1000 取餘數
}
cout << a << "^" << b << " 後3碼 = " << p << endl;
}
return 0;
}
/*
執行範例
D:\cpp>apb
123 456
123^456 後3碼 = 561
12 23
12^23 後3碼 = 128
987 654
987^654 後3碼 = 689
^Z
*/
/* 輸入 {a,b} > 0 計算 a,b 的最大公因數 */
#include <iostream>
using namespace std;
int main()
{
int a,b;
while ( cin >> a >> b)
{
cout << a << "," << b << " 的 gcd ";
int c=a%b;
while( c )
{
a=b;
b=c;
c=a%b;
}
cout << b << endl;
}
return 0;
}
/*
執行範例
D:\cpp>gcd
100 55
100,55 的 gcd 5
1965 1155
1965,1155 的 gcd 15
^Z
*/
a的b次方÷1000取餘數
/* 輸入 1<{a,b}<1000 計算 a^b(a的b次方) 取最後三位數 */
#include <iostream>
using namespace std;
int main()
{
int a,b;
while( cin >> a >> b)
{
int p=1;
for(int i=1; i<=b; ++i)
{
p*=a; //乘 b 次
p %= 1000; // 每次皆除 1000 取餘數
}
cout << a << "^" << b << " 後3碼 = " << p << endl;
}
return 0;
}
/*
執行範例
D:\cpp>apb
123 456
123^456 後3碼 = 561
12 23
12^23 後3碼 = 128
987 654
987^654 後3碼 = 689
^Z
*/