#include <iostream>
using namespace std;
int main()
{
int Result;
int iSix;
int iFive;
int iFour;
int iThree;
int iTwo;
for (int i = 1, iDivisor = 100; iDivisor != 1000; ++iDivisor)
{
for (int iDividend = 10000000; iDividend != 100000000; ++iDividend)
{
//1.如果能够整除,继续
if (iDividend%iDivisor == 0)
{
Result = iDividend / iDivisor;
//2.如果得到的商的结果是5位数,并且高二位为7,并且低二位为0
if (Result > 16999 && Result < 98000 && (Result / 1000) % 10 == 7 && (Result/10)%10==0)
{
//3.如果最高位乘以3位数,是一个四位数,并且除数最高4位减去这个四位数,结果大于9小于100
iSix = (Result / 10000) * iDivisor;
iFive = iDividend / 10000 - iSix;
if (iSix>999 && iSix<10000 && iFive>9 && iFive < 100)
{
//4.如果被除数乘以7是三位数,且减去新的三位数,还是三位数
iFour = (iFive * 10 + (iDividend / 1000) % 10) - iDivisor * 7;
if (iDivisor * 7<1000 && iFour > 99 && iFour < 1000)
{
//5.7后面的一位,如果第三位数乘以被除数还是三位数,且iFour形成的四位数减去这个三位数是两位数
//iThree是低三位乘以被除数,应该是一个三位数
//iTwo是iFour形成的四位数减去上面的三位数,得到的一个两位数,这个两位数和低二位形成的3位数必须要小于被除数
iThree = ((Result / 100) % 10)*iDivisor;
iTwo = iFour * 10 + (iDividend / 100) % 10 - iThree;
if (iThree>99 && iThree<1000 && iTwo>9 && iTwo < 100)
{
//6.得到的两位数,和低二位的数字组合,该数字要小于被除数
if ((iTwo * 10 + (iDividend / 10) % 10) < iDivisor)
cout << i++ << " " << iDividend << " / " << iDivisor << " = " << Result << endl;
}
}
}
}
}
}
}
system("pause");
return 0;
}