题意:把一个数按长度均分成a和b,问原本的数是否能整除a*b。
思路:直接做。
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAX_N = 10;
int n;
char s[MAX_N];
char a[MAX_N], b[MAX_N];
void solve() {
int len = strlen(s); int t = len / 2;
int res = atoi(s);
strcpy(b, s+t); s[t] = '\0';
strcpy(a, s);
int na = atoi(a), nb = atoi(b);
int tmp = na * nb;
if (tmp != 0 && res % tmp == 0) {
printf("Yes\n");
} else {
printf("No\n");
}
}
int main() {
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", s);
solve();
}
return 0;
}