求200000以内自守数c语言,求c语言答案 输出200000以内的自守数

代码:

#include

int main()

{

long mul,number,k,ll,kk;

printf("It exists following automorphic nmbers small than 200000:\n");

for(number=0;number<200000;number++)

{

for(mul=number,k=1;(mul/=10)>0;k*=10);

/*由number的位数确定截取数字进行乘法时的系数k*/

kk=k*10; /*kk为截取部分积时的系数*/

mul=0; /*积的最后n位*/

ll=10; /*ll为截取乘数相应位时的系数*/

while(k>0)

{

mul=(mul+(number%(k*10))*(number%ll-number%(ll/10)))%kk;

/*(部分积+截取被乘数的后N位*截取乘数的第M位),%kk再截取部分积*/

k/=10; /*k为截取被乘数时的系数*/

ll*=10;

}

if(number==mul) /*判断若为自守数则输出*/

printf("%ld\n",number);

}

}

效果图:

6bd217bc10d6929aa14543c47c37b02e.png

【酷_酷_币】为您服务...

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值