求完全平方数

输出x1到x2之间所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。

样例输入 

7500 8000

样例输出 

7744

提示

完全平方指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
例如样例输出中的7744 是 88 * 88的平方,同时7744是aabb的形式,所以在【7500,8000】之间的7744是aabb的四位完全平方数。
又像7755这样的,不能分解为一个整数的平方的形式,所以不符合题意。

代码如下:

 #include<iostream>
#include<stdio.h>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
    int x1, x2;
    cin >> x1 >> x2;
    for (int i = x1; i <= x2; i++)
    {
        int a[4];
        int n = i;
        for (int j = 0; j<4; j++)
        {

               //判断i 前两位是否和后两位相同
            a[j] = n % 10;
            n = n / 10;
        }
        if (a[0] == a[1]&&a[2] == a[3])
        {

               //接下来判断 i 开根号是否能为整数(即i的根号是否存在)
            float m = sqrt(i);
            int s = (int)m;
            if (s == m)         
                cout << i << endl;
        }
    }
    return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值