题目链接https://pintia.cn/problem-sets/994805342720868352/problems/994805347145859072
题目大意:给一个十进制整数Z
,位数为偶数,将其对等拆分为前半部分a
和b
,判断Z
是否能被a*b
整除
简单题,注意a*b == 0
的情况单独判断即可
完整代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <algorithm>
#include <queue>
#include <string>
#include <map>
#include <set>
using namespace std;
int main() {
int N;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
string Z;
cin>>Z;
int z = stoi(Z);
int a = stoi(Z.substr(0, Z.length()/2));
int b = stoi(Z.substr(Z.length()/2));
if (a*b == 0) {
printf("No\n");
continue;
}
if (z % (a*b) == 0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}