C语言的流程控制问题,百度搜不到类似问题,大神请进来帮帮我吧!!

问题如图:

图片说明

我自己的代码:

图片说明

n 输入10000部分运行结果:

图片说明

我想要只输出满足上图中编程要求就是这输出b最小的那项,来位大神帮我改改我的代码或者你发给我新的代码也行!!在线等

没有悬赏没人回答!!太惨了

#include<stdio.h>
int main()
{
    int n,i,j,k;
    int cont;
    scanf("%d",&n);
    for(i=7;i*i<=n;i++)
    {
        cont=0;//增加一个cont变量,第一次出现的式子输出的b就是最小项,出现后cont增1,然后条件跳出,到下一个i时重新置0
        for(j=1;j*j*10<=i*i;j++)
        {
            if(cont==1) break;
            for(k=1;k*k<=i*i-j*j*10;k++)
            {
                if(i*i==j*j*10+k*k)
                {
                    printf("%d=%d*%d=%d*%d*10+%d*%d \n",i*i,i,i,j,j,k,k);
                    cont++;
                }
            }
        }
    }
    return 0;
}

图片说明