C语言:假设在n进制下,下面的等式成立,n的值是(),567*456=150216.

假设在n进制下,下面的等式成立,n的值是(),567*456=150216.

A,9  B,10 C,12 D,18

解:设567为1;456为2;

第一步;去1的个位和2的个位相乘得到42:在分别对A,B,C,D取余;看对A,B,C,D取余后那个值等于150216中的个位;

经过第一步后B被排除在外;

第二步;展开

567*456=(5n^2+6n+7)*(4n^2+5n+6)=20n^4+49n^3+88n^2+71n+42 =n^5+5n^4+2n^2+n+6 .......(1)

(1)的两边同时%n;

42%n=6;6<n<42;(2)

设 a=[42/n] ,则由(2)式子得:
  a*n=36,其中6<n<42;a,n皆为正整数......(3)
由6可解得 n=9,12,18,36 .......(4)

 

(1)的两边同时除以n,然后在同时%n;

(71+42/n)%n=(1+5/n)%n=1;
=> [71+42/n] % n=1.........(5)

即可得出n=18;

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值