PATA 1132 Cut Integer (20分)

PATA 1132 Cut Integer (20分)

Cutting an integer means to cut a K digits lone 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 × 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

题目大意:

给你一个数字Z,将Z对半分成A和B,如果Z/(A*B)是整数那就是对的,如果不能就是错的。注意AB的积可能是0。

#include
#include
#include
#include

using namespace std;

int main(){
    int N,Z;
    scanf("%d",&N);
    for(int i=0;i<N;i++)
    {
       scanf("%d",&Z);
       string s = to_string(Z);
       int len = s.length();
       int a = stoi(s.substr(0, len/2));
       int b = stoi(s.substr(len/2));
       if (a * b != 0 && Z % (a * b) == 0)
           printf("Yes");
       else
           printf("No");
       if(i!=N-1)   printf("\n");     
}
    return 0 ;
}

你可能感兴趣的:(C++,PAT甲级题目集)