如果整数不能被 2 或 5 整除,则在十进制表示法中,该数字的倍数只有一个数字。
例如,您必须找到仅包含 3 的 1 的倍数。则结果111(3位)可被3整除。同样,如果你找到 7 的倍数,其中只包含 3,那么结果是 333333 可以被 7 整除。
现在,您将获得数字和唯一允许的数字,您应该报告这种倍数的位数。
输入
输入以整数 T (≤ 300) 开头,表示测试用例的数量。
每种情况将包含两个整数 n(0 < n ≤ 106 并且 n 不能被 2 或 5 整除)和允许的数字(1 ≤ 位≤ 9)。
输出
对于每个案例,打印案例编号和此类倍数的位数。如果存在几种解决方案;报告最少一个。
样本
输入复制 | 输出复制 |
---|---|
3 3 1 7 3 9901 1 | Case 1: 3 Case 2: 6 Case 3: 12 |
注意
- 对于情况 1,111 是最小的整数,它包含 3 位数字。
- 对于情况 2,333333 是最小的整数,它包含 6 位数字。
-
#include<bits/stdc++.h> using namespace std; using i64 = int64_t; #define int i64 #define endl '\n' int n,m,sum,ans; void solve() { int t; cin >> t; for(int i = 1;i <= t;i++) { cin >> n >> m;//只包含m可以整除n的最小位数 int k = m; ans = 1; while(k % n) { ans++; k = k * 10 + m; k %= n; } cout << "Case "<< i << ": " << ans << endl; } } signed main() { cin.tie(0) -> sync_with_stdio(false); int T = 1; //cin >> T; while(T--) solve(); return 0; }