测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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;

}

上一题 下一题