#include <iostream>
using namespace std;
int max_gongyue(int num1,int num2)
{
int temp,m,n;
if(num1<num2)
{
temp=num1;
num1=num2;
num2=temp;
}
m=num1;
n=num2;
while(m%n)
{
temp=m;
m=n;
n=temp-n*(temp/n);
}
return n;
}
int main()
{
cout<<"解方程ax≡b(mod m)"<<endl;
cout<<"请输入 a,b,m"<<endl;
int a,b,m;
int d;
int i;
while(cin>>a>>b>>m)
{
//求(a,m)=d
d=max_gongyue(a,m);
//判断方程是否有解
if(b%d)
{
cout<<"该方程无解"<<endl;
}
else
{
cout<<"有"<<d<<"个解为x≡ ";
for(i=0;i<m;i++)
{
if(a*i%m==(b%m))
{
cout<<i<<",";
}
}
cout<<"\b";
cout<<"(mod"<<m<<")"<<endl;
}
}
return 0;
}