Cutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long integers A and B. For example, after cutting Z = 167334, we have A = 167 and B = 334. It is interesting to see that Z can be devided by the product of A and B, as 167334 / (167 x 334) = 3. Given an integer Z, you are supposed to test if it is such an integer.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (<= 20). Then N lines follow, each gives an integer Z (10<=Z<=231). It is guaranteed that the number of digits of Z is an even number.
Output Specification:
For each case, print a single line “Yes” if it is such a number, or “No” if not.
Sample Input:
3
167334
2333
12345678
Sample Output:
Yes
No
No
#include"stdlib.h"
#include"string.h"
#include"math.h"
#define N 20
int main()
{
char str[N][N],str1[N],str2[N];
int n,len,i;
double temp1, temp2, temp3, temp;
scanf_s("%d", &n);
for (i = 0; i < n; i++)
{
scanf_s("%s", str[i], N);
}
for (i = 0; i < n; i++)
{
len = strlen(str[i]);
strncpy_s(str1, str[i], len / 2);
strncpy_s(str2, str[i] + len / 2, len / 2);
temp1 = atol(str[i]);
temp2 = atol(str1);
temp3 = atol(str2);
temp = temp1 / (temp2*temp3);
if (temp - floor(temp) == 0)printf("Yes\n");
else printf("No\n");
}
system("pause");
return 0;
}