用C++求同时满足以下条件的所有三位正整数

求同时满足以下条件的所有三位正整数
1该数是某个两位数的平方
2该数的个 十 百位数各不相同
3该数的个 十 百位数按升序排列
要求将判断整型数是否满足条件1设计为f1函数,是否满足条件2和条件3设计为f2函数。在主函数中调用以上函数,输出满足所有条件的三位数及条件1中对应的两位数。

平方就是开根号后再相乘等于该数,或者遍历所有两位数进行相乘,等于这个数就OK
2,3需要把三位数分解出来,进行判断

#include <iostream>
using namespace std;
int f1(int n)
{
    for(int i=10;i<100;i++)
    {
        if(i*i == n)
            return i;
        if(i*i>n)
            break;
    }
    return 0;
}

int f2(int n)
{
    int a = n/100;
    int b = n/10%10;
    int c = n%10;
    if(a==b || b==c || a==c)
        return 0;
    if(a<b || b<c)
        return 0;
    return 1;
}
int main()
{
    for(int i=100;i<1000;i++)
    {
        int x = f1(i);
        int y = f2(i);
        if(x != 0 && y != 0)
            cout<<i<<","<<x<<endl;
    }
    return 0;
}