这个C语言程序让我头疼好久,总是感觉自己做的是对的,可结果却不尽人意。大神们,求助!!!
问题:求1000000以内的所有 Trotsky 数。Troitsky 数是将该数的首位数字移到末位数字之后得到的数是原数的整数倍。 例如:将142857的首位数字1移到末位之后得到的数是428571,而428571=3*142857,因此142857是Troitsky数。
#include<stdio.h>
main()
{ long i,k,j,a,p,num=0,s;
for(i=1;i<=1000000;i++)
{ p=i;
while(p!=0)
{ a=p;
p=p/10;
num++;
}
k=a;
for(j=1;j<num;j++)
k=k*10;
s=(i-k)*10+a;
if(s%i==0) printf("%ld ",i);
}
}