找出这个数(难度:半颗星)

来源:互联网 发布:淘宝虚假代理 编辑:程序博客网 时间:2024/04/25 13:15

求一个正整数,这个数满足如下条件:
1. 这个数的平方必须是四位数
2. 这个数的三次方必须是六位数
3. 而且这四位数和六位数每位数都不一样。

参考代码:

#include <stdio.h>int main(){    int i, j, GoNextLoop, flag[10], nCnt;    for (i = 32; i < 100; i++)//在平方必须是四位数的范围内寻找    {        int num1 = i * i;        int num2 = i * i * i;        for (j = 0; j < 10; j++)            flag[j] = 0;        GoNextLoop = 0;        nCnt = 0;        while (num1)        {            if (flag[num1 % 10] == 1)            {                GoNextLoop = 1;                break;            }            flag[num1 % 10] = 1;            num1 /= 10;            nCnt++;        }        if (GoNextLoop == 1)            continue;        while (num2)        {            if (flag[num2 % 10] == 1)                break;            flag[num2 % 10] = 1;            num2 /= 10;            nCnt++;        }        if (nCnt == 10)            printf("%d\n", i);    }    return 0;}

运行结果:

这里写图片描述

原创粉丝点击