A41770. 组合提示信息:因数:因数是指整数a除以整数b(b!=0)的商正好是整数而没有余数,我们就说b是a的因数。公因数:给定若干个整数,如果有一个(些)数是它们共同的因数,那么这个(些)数就叫做它们的公因数。互质数:公因数只有1的两个非零自然数,叫做互质数;例如:2和3,公因数只有1,为互质数。
填空题
困难
知识点
题目描述
组合
提示信息:
因数:因数是指整数a除以整数b(b!=0)的商正好是整数而没有余数,我们就说b是a的因数。
公因数:给定若干个整数,如果有一个(些)数是它们共同的因数,那么这个(些)数就叫做它们的公因数。
互质数:公因数只有1的两个非零自然数,叫做互质数;例如:2和3,公因数只有1,为互质数。
题目描述
某商店将一种糖果按照数量打包成N和M两种规格来售卖(N和M为互质数,且N和M有无数包)。这样的售卖方式会限制一些数量的糖果不能买到。那么在给出N和M的值,请你计算出最多不能买到的糖果数量。
例如:
当N=3,M=5,3和5为互质数,不能买到的糖果数量有1,2,4,7,最多不能买到的糖果数量就是7,7之后的任何数量的糖果都是可以通过组合购买到的。
输入描述
输入两个正整数N,M(2<N<M<100,N和M为互质数),表示两种规格的糖果数量,正整数之间一个空格隔开
输出描述
输出一个整数,表示最多不能买到的糖果数量!
样例输入
3 5
样例输出
7
参考答案
//暴力枚举
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
for(int k=a*b;k>=1;k--){ //枚举糖果数量
// a*i+j=k j=b*x
int flag=0;
for(int i=0;i<100;i++){
int j=k-a*i;
if(j>=0&&j%b==0){
flag=1; //可组合
break;
}
}
if(flag==0){//不可组合
cout<<k<<endl;
break;
}
}
return 0;
}答案解析
//递推
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a*b-a-b<<endl;
return 0;
}
上一题
下一题