Description
Dante is engaged in a fight with "The Savior". Before he can fight it with his sword, he needs to break its shields. He has two guns, Ebony and Ivory, each of them is able to perform any non-negative number of shots.
For every bullet that hits the shield, Ebony deals a units of damage while Ivory deals b units of damage. In order to break the shield Dante has to deal exactlyc units of damage. Find out if this is possible.
Input
The first line of the input contains three integers a, b, c (1 ≤ a, b ≤ 100, 1 ≤ c ≤ 10 000) — the number of units of damage dealt by Ebony gun and Ivory gun, and the total number of damage required to break the shield, respectively.
Output
Print "Yes" (without quotes) if Dante can deal exactly c damage to the shield and "No" (without quotes) otherwise.
Sample Input
4 6 15
No
3 2 7
Yes
6 11 6
Yes
解体思路:刚开始考虑用扩展欧几里德判断方程是否有解的方法来判断方程是否有解,后来发现3,7,8这组数据WA了,因为存在负数解使等式成立,但不满足题意,因为发射出的子弹必须是大于等于0的数.后来发现其实用暴力就能过.
代码如下:
#include<stdio.h>
int main(){
int a,b,c,flag,i;
while(scanf("%d%d%d",&a,&b,&c)!=EOF){
if(c%a==0||c%b==0){
printf("Yes\n");
}
else if(a<c&&b<c){
flag=0;
for(i=1;i<=c/a;i++){
if((c-a*i)%b==0){
printf("Yes\n");
flag=1;
break;
}
}
if(!flag)printf("No\n");
}
else printf("No\n");
}
return 0;
}