看偶的 忙了半天 嘿嘿
#include <iostream>
using namespace std;
int Min(const int x,const int y,const int z)
//3个数最小公倍数
{
int sum=x*y*z;
int a=x;
int b=y;
int c=z;
for(int i=2 ; i<=y ; )
{
if (a%i==0 && b%i==0 && c%i==0)
{
sum=sum/i/i;
a=a/i;
b=b/i;
c=c/i;
}
else
if (a%i==0 && b%i==0)
{
sum=sum/i;
a=a/i;
b=b/i;
}
else if
(a%i==0 && c%i==0)
{
sum=sum/i;
a=a/i;
c=c/i;
}
else if
(b%i==0 && c%i==0)
{
sum=sum/i;
b=b/i;
c=c/i;
}
else i++;
}
return(sum);
}
int main(void)
{
int a,b,c,x,y,z;
int k;
int sum;
int i;
cout<<"请由小到大输入3个除数 "<<endl;
cin>>x>>y>>z;
if ( x<=1 || x>=y || x>=z || y>=z)
{
return(0);
}
cout<<"请输入3个余数"<<endl;
cin>>a>>b>>c;
if (a<0 || b<0 || c<0 || a>=x || b>=y || c>=z)
{
return(0);
}
sum=z-c;
k = Min(x,y,z);
for(i=0 ; i<k/z ; i++)
//以下实际上是解方程
{
sum=sum+z;
if (sum%x ==x-a && sum%y == y-b )
{
break;
}
if (a==0 && b==0 && sum%x==0 && sum%y==0)
//讨论余数为0
{
break;
}
if (a==0 && b!=0 && sum%x==0 && sum%y==y-b)
{
break;
}
if (a!=0 && b==0 && sum%x==x-a && sum%y==0)
{
break;
}
}
if(i>=k/z)
{
cout<<"不存在这样的数 "<<endl;
}
else
{
if (k-sum>0)
{
cout<<k-sum<<",";
}
for(int j=2*k ; j<20000 ; j+=k)
{
cout<<j-sum<<",";
}
cout<<endl;
}
cout<<"谢谢观赏欢迎提供意见"<<endl;
cin.get();
cin.get();
return(0);
}