题目翻译:
给定一个数
N
,它可以切分成两个整数a
和b
,其中a
是等于N
的前半部分而b
是后半部分,例如167334
划分成a=167
和b=334
。我们需要判断
N
是否可以整除a*b
。
题解思路:
模拟
代码:
#include<bits/stdc++.h>
using namespace std;
int N;
int main()
{
cin >> N;
while (N--)
{
string p;cin >> p;
string q1 = p.substr(0, p.size() / 2);
string q2 = p.substr(p.size() / 2);
if (stoi(q2)==0||(stoi(p) % (stoi(q1) * stoi(q2))))
cout << "No" << endl;
else
cout << "Yes" << endl;
}
}
坑点:
注意被分裂的第二个整数可能为0,会导致浮点错误。