运行结果左右不等价,请问什么原因?

要求:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

代码如下:
#include
long output(long b,long i)
{
printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);
}
int main()
{
long int a,b,i;
a=809;
for(i=10;i {
b=i*a+1;
if(b>=1000&&b<=10000&&8*i=100)
output(b,i);
}
}

运算结果为:9709/12=809*12+1
以上结果左右不等价,但是却能运行,请问代码有什么问题???


#include "stdio.h"
int main(int argc, char* argv[])
{
    for (int i = 10; i <= 99; i++)
    {
        if (809*i==800*i+9*i+1 && 8*i>=10 && 8*i<=99 && 9*i>99 && 9*i<=999)
            printf("%d", i);
    }
    return 0;
}

没有满足的结果

@caozhy

0!=1,所以无结果对吧~~那怎样修改能正确运行呢???

b=i*a+1;
这里没有/12的逻辑
9709=809*12+1
成立

@caozhy
尽然没有/12逻辑,为啥运行结果却出现了这个呢?