最小公倍数、最大公约数、质数因子
1、最大公约数
int gcd(int a, int b){ int tmp = abs(a-b); while(tmp != 0){ a = b; b = tmp; tmp = abs(a-b); } return b; }
2、最小公倍数
(1)最小公倍数 = a*b/gcd(a,b);
(2)最小公倍数在[max(a,b),a*b]这个区间里,
for(int i = max(a, b); i <= a*b; i++){ if(i%a == 0 && i%b == 0){ cout << i << endl; break; } }
3、质数因子
#include<iostream> #include<cmath> using namespace std; int main(){ long number; cin >> number; for(int i = 2; i <= sqrt(number); i++){//number>=4 while(number%i == 0){//可以整除,说明i是质数因子 cout << i <<" "; number = number/i;//得到的数看看能否被i再次整除,可以则输出,不可则i+1继续 } } if(number-1){//number<4 cout << number; } return 0; }