#include<stdio.h>
int main(int argc,char**argv)
{  int H,S,A=8000,H2=0,S2;
  for(H=1;H<4000;H++)
    for(S=1;S<4000;S++)
      if(S*H==4000)
        if(H/S<10)
          if(H+S<=A)
            {  A=H+S;
              H2=H;
              S2=S; }
  if(H2==0)
    printf("それらの条件を満たす数はありません\n");
  else
    printf("それらの条件は縦%d,横%dが満たします\n",H2,S2);
  return 0;
}
ifのネストが見にくいなぁ。
一応、自然数のみで書いたが、
問題の条件が不足してるぞ。
縦、横の範囲設定がわからん