题目描述
输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程ax+by+c=0,其中x、y为未知量且不超过10000,当给定a、b、c的值以后,可求出n组x、y的非负整数解,n>=0,,其中a,b,c均为[-10000,10000].
输入描述
一行,三个空格隔开的整数,为a、b、c的值。
输出描述
一个整数,为合法的解的组数.
输入样例 复制
3 2 -2
输出样例 复制
1
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if(a == 0 && b == 0) {
if(c != 0) {
printf("0\n");
}
return 0;
}
if(a == 0) {
if(c % b == 0 && -c / b >= 0) {
printf("1\n");
} else {
printf("0\n");
}
return 0;
}
if(b == 0) {
if(c % a == 0 && -c / a >= 0) {
printf("1\n");
} else {
printf("0\n");
}
return 0;
}
int count = 0;
for(int x = 0; x <= 10000; x++) {
if((a * x + c) % b == 0) {
int y = (-a * x - c) / b;
if(y >= 0) {
count++;
}
}
}
printf("%d", count);
return 0;
}
输出不定方程解的个数。在数学中,不定方程是数论中的一个重要课题,在各种比赛中也常常出现. 对于不定方程,有时我们往往只求非负整数解,现有方程ax+by+c=0,其中x、y为未知量且不超过10000,当给定a、b、c的值以后,可求出n组x、y的非负整数解,n>=0,,其中a,b,c均为[-10000,10000].一行,三个空格隔开的整数,为a、b、c的值。一个整数,为合法的解的组数.