用展转相除法求最大公约数ide
#include <stdio.h> //求两个数的最大公约数 int main() { int num1=0,num2=0; int max=0; printf("请输入两个不为零的数字:\n"); scanf("%d%d",&num1,&num2); if(num2>num1) { num2=num1^num2; num1=num1^num2; num2=num1^num2; } if(num1>num2) { if(num1%num2==0) printf("最大公约数为:%d",num2); else { while(num1%num2!=0) { max=num1%num2; num1=num2; num2=max; } printf("最大公约数为:%d",max); } } if(num1==num2) { printf("两数相等最大公约数为它自己%d",num1); } return 0; }
最小公倍数的求法直接用(num1*num2)/max便可。it