有一个6位数,由6个不同数字组成,当此数分别乘以2,3,4,5,6时,其积仍由那6个数组成用C语言写出算法

问题描述:

有一个6位数,由6个不同数字组成,当此数分别乘以2,3,4,5,6时,其积仍由那6个数组成
用C语言写出算法

#include
int a,b,c,d,e,f;
long temp,temp1;
int get(int i)
{

int c=1,gtemp=1;
int k=1;
while(k {
c=gtemp*10;
gtemp=c;
k++;
}

return (temp/c)%10;
}
int compare(int m,int n,int o,int s,int q,int r)
{
if(m==a||m==b||m==c||m==d||m==e||m==f)
if((n==a||n==b||n==c||n==d||n==e||n==f)&&(n!=m))
if((o==a||o==b||o==c||o==d||o==e||o==f)&&(o!=m)&&(o!=n))
if((s==a||s==b||s==c||s==d||s==e||s==f)&&(s!=m)&&(s!=n)&&(s!=o))
if((q==a||q==b||q==c||q==d||q==e||q==f)&&(q!=m)&&(q!=n)&&(q!=o)&&(q!=s))
if((r==a||r==b||r==c||r==d||r==e||r==f)&&(r!=m)&&(r!=n)&&(r!=o)&&(r!=s)&&(r!=q))
return 1;
return 0;
}
void main(void)
{
int k;
for(int i=100000;i {
temp=i;
temp1=temp;
a=get(6);
b=get(5);
c=get(4);
d=get(3);
e=get(2);
f=get(1);
for( k=2;k {
temp=temp1*k;
if( compare(get(6),get(5),get(4),get(3),get(2),get(1)))
;
else
break;
}
if(k==7)
cout
}
}
c++程序
运行结果:142857;

A语言
142857

#include
int main()
{
int a1,a2,a3,a4,a5,a6;
int i1,i2,i3,i4,i5,i6;
int num;
int s[5],i,j,sg;
int wrong;
for(i1=0;i1