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<cstdio>
#include<cstring>
#include<string>
#include<iostream>

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 ;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章