Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55067 | wzj33300 | 连续的正整数 | C++ | 解答错误 | 0 | 460 MS | 252 KB | 971 | 2022-08-08 20:04:08 |
#include <bits/stdc++.h> using namespace std; #define ll long long inline ll read ( ) { static ll x=0, c=getchar(); for ( ; c <=47|| c >=58; c=getchar() ) ; for ( x=0; c>=48&&c <=57; c=getchar()) x=(x<<3)+(x<<1)+(c &15); return x ; } ll n, q, t; ll gcd(ll x, ll y) { while (y) { ll temp = x; x = y; y = temp % y; } return x; } int main() { //freopen("number2.in", "r", stdin); //freopen("number.out", "w", stdout); // scanf("%lld", &t); t = read(); while(t--) { // scanf("%lld%lld", &n, &q); n = read(), q = read(); if (gcd(n, q) != 1 && (((1 - n) % q + q) % q)) { puts("-1"); } else { if ((1 - n) & 1 && !(q & 1)) { puts("-1"); } else { long long l; if ((1 - n) & 1) { l = ((1 - n + q) / 2 % q + q) % q; } else { l = ((1 - n) / 2 % q + q) % q; } if (l == 0) { l += q; } printf("%lld\n", l); } } } }