标签:bsp ios .cpp 交换变量 过程 include 结束 模块化 实现
主要内容:
例题:求两个正整数的最大公约数。
分解因数法:
int a, b, flag; input(a,b) if(a>b) a,b交换数值 for(从a循环递减,搜索最大的公因数) if(能同时整除a,b即为公因数) 跳出循环; print(flag);
分解质因数法:
#include<iostream> #include<cmath> using namespace std; bool pNumber(int n) //判断质数 { for(int i = 2; i <= sqrt(n); i++) if(n%i == 0) return false; return true; } void exchange(int &x, int &y) //交换x,y的值 { int temp = x; x = y; y = temp; } int main() { int a, b; while(cin >> a >> b && a != 0 && b != 0){ int flag = 1; if(a > b) exchange(a, b); for(int i = 2; i <= a; i++) if(a%i == 0 && b%i == 0 && pNumber(i)){ flag *= i; // cout << "this is debug!----" <<i << endl; } cout << flag << endl; } return 0; }
短除法:
#include<iostream> #include<cmath> using namespace std; int main() { int a, b, t, i; cin >> a >> b; t = 1; for(i = 2; i <= a && i <= b; i++) while(a%i == 0 && b%i == 0) { t = t*i; a = a/i; b = b/i; } cout << t << endl; return 0; }
#include<iostream> #include<cmath> using namespace std; int main() { int a, b, c; cin >> a >> b; if(b == 0 || a == 0) { cout << "data error!" << endl; return 0; } else { c = a % b; while(c != 0) { a = b; b = c; c = a %b; } } cout << b; return 0; }
?source code------仅供参考
标签:bsp ios .cpp 交换变量 过程 include 结束 模块化 实现
原文地址:https://www.cnblogs.com/sunrisepeak/p/9652968.html