输入两个数a,b后,若两个数直接相乘,可能是这两个数的大公倍数,如5x7;也可能不是,如6x9,很容易就能看出6x9=54和6x9的最小公倍数18是除3的关系,而3就是6和9的大公倍数。
创新互联公司专注于尼泸西企业网站建设,响应式网站开发,商城系统网站开发。尼泸西网站建设公司,为尼泸西等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务思路:
1.找大公约数利用循环,循环变量i作为除数,大就让循环变量大开始自减,i从较小的数开始自减。
2.输出并跳出循环输出:两者相乘除大公约数
#includeint main()
{int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int i = 0;
for (i = a0 ; i--)
{if (a % i == 0 && b % i == 0)
{ printf("%d\n",a*b/i);
break;
}
}
return 0
}
思路二.自增首先输入的两个数a,b,它们的公倍数一定大于等于较大的数,那么我们是不利用循环,让循环变量i从较大的值开始增加,每次循环利用循环变量i是否能整除较小的那个数,就可以得到最小公倍数了。
#includeint main()
{int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int min = a >b ? a : b;//min为公倍数的可能最小取值
while (1)
{if (min % a == 0 && min % b == 0)
{ printf("%d", min);
break;
}
}
return 0;
思路三.乘法与自增结合,减少思路二中循环的次数(最优)两个数的最小公倍数一定是这两个数每一个的倍数,那么我们结合思路二,只需要拿出二者之一,让它成倍的增长,然后判断每增长一倍后是否整除另一个数,这样既可以减少循环的次数,还不用判断两个数的大小,是不是比思路二简单很多。
#includeint main()
{int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int i = 0;
for (i = 1;; i++)
{if (a * i % b == 0)
{ printf("%d\n", a * i);
break;
}
}
return 0;
}
欢迎各路佬提供新思路,求三连~~
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款