歐幾裡得算法
#include<iostream>
using namespace std;
int fun(int a, int b){
if (a >= b){
int r = a%b;
if (r == 0)
return b;
else
fun(b, r);
}
else
fun(b, a);
}
int main()
{
int a, b;
cout << "請輸入兩個整數" << endl;
cin >> a>>b;
int r = 1;
r = fun(a, b);
cout << a << "和" << b << "的最大公約數是:" << r << endl;
}在這裡插入代碼片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
連續整數檢測法
int fun2(int a, int b){
int c;
if (a <= b)
c = a;
c = b;
for (c; c >= 1; c--)
{
if (a%c== 0 && b%c== 0)
break;
return c;
r = fun2(a, b);
25
26
分解公共質因數法
#include<string>
#define len 100
//找一個數的質因子
void fun1(int a,int* s) {
bool flag = true;
int count = -1;
for (int i = 1; i < a; i++) {
if (a%i == 0) //一個因子 接下來判斷是否是素數,如果是素數flag=1 則将其加入數組,如果不是i++
{
for (int j = 2; j <= i - 1; j++) {
if (j%i == 0)
flag = false;
}
if (flag) {
count++;
*(s+count)=i;
}