HDU - 4993 Revenge of ex-Euclid

来源:互联网 发布:linux find 绝对路径 编辑:程序博客网 时间:2024/06/01 07:43

Problem Description
In arithmetic and computer programming, the extended Euclidean algorithm is an extension to the Euclidean algorithm, which computes, besides the greatest common divisor of integers a and b, the coefficients of Bézout's identity, that is integers x and y such that ax + by = gcd(a, b).
---Wikipedia

Today, ex-Euclid takes revenge on you. You need to calculate how many distinct positive pairs of (x, y) such as ax + by = c for given a, b and c.
 

Input
The first line contains a single integer T, indicating the number of test cases.

Each test case only contains three integers a, b and c.

[Technical Specification]
1. 1 <= T <= 100
2. 1 <= a, b, c <= 1 000 000
 

Output
For each test case, output the number of valid pairs.
 

Sample Input
21 2 31 1 4
 

Sample Output
13题意:求ax+by=z的(x,y)的正数解对数思路:枚举
#include <iostream>  #include <cstdio>  #include <cstring>  #include <algorithm>  using namespace std;  const int maxn = 20005;  int main() {  int t, a, b, c;scanf("%d", &t);while (t--) {scanf("%d%d%d", &a, &b, &c);int ans = 0;for (int i = 1; c-b*i > 0; i++) if ((c-b*i) % a == 0)ans++;printf("%d\n", ans);}return 0;}  


0 0
原创粉丝点击