# 排它平方数

203879 * 203879 = 41566646641  

这有什么神奇呢？仔细观察，203879 是个6位数，并且它的每个数位上的数字都是不同的，并且它平方后的所有数位上都不出现组成它自身的数字。

具有这样特点的6位数还有一个，请你找出它！

再归纳一下筛选要求：

1. 6位正整数

2. 每个数位上的数字不同

3. 其平方数的每个数位不含原数字的任何组成数位

以下程序实现了这一功能，请你补全以下空白处内容：

```c
#include <iostream>
using namespace std;

int main()
{
    int num[10], flag;
    for (long long i = 123456; i <= 987654; i++)
    {
        long long a = i;
        long long b = i * i;
        memset(num, 0, sizeof(num));
        flag = 1;
        while (a)
        {
            _________________;
        }
        if (flag)
        {
            while (b)
            {
                if (num[b % 10])
                {
                    flag = 0;
                    break;
                }
                b /= 10;
            }
            if (flag)
                cout << i << endl;
        }
    }
    return 0;
}
```

提示：

```json
0的平方为0
1的平方为1
5的平方为5
6的平方为6
以上这4个数字都不能作为原数字的最后一位，可以在最后一位排除
且第一位不能为0
```

## 答案

```c
if (num[a % 10])
{
    flag = 0;
    break;
}
num[a % 10]++;
a /= 10;
```

## 选项

### A

```c
if (num[a % 10])
{
    flag = 0;
    continue;
}
num[a % 10]++;
a /= 10;
```

### B

```c
if (num[a % 10])
{
    flag = 0;
    continue;
}
num[a % 10]++;
a %= 10;
```

### C

```c
if (num[a % 10])
{
    flag = 0;
    break;
}
num[a % 10]++;
a %= 10;
```
