troy 发表于 2008-9-29 13:59:24

如何判读一个数的倍数全有8组成

给点一个正整数,如何判断他的倍数全由8组成,找到最小的那个数。也可能找不到这个数!!
比如3,它的最小的倍数就是888.

gxqcn 发表于 2008-9-29 14:10:57

只要给定的数与10互素即一定存在。

由欧拉定理,10^varphi(n) -= 1 (mod n)
在 varphi(n) 因子中选一个最小的整数 x,使 10^x -= 1 (mod n) 成立,
则 x 个8即为n的最小符合要求的倍数。

troy 发表于 2008-9-29 14:29:36

那n=2的时候也存在啊!

无心人 发表于 2008-9-29 14:38:51

应该是不含有素因子5

gxqcn 发表于 2008-9-29 14:40:03

考虑到“8”本身的因子的贡献,除1、2、4、8外,
其它的数当且仅当该数不含2、5的因子时才存在,计算方法见2楼。

无心人 发表于 2008-9-29 14:40:38

呵呵
你给分析透了

怎么没回家?

gxqcn 发表于 2008-9-29 14:51:48

晚上6:30的车,明早天不亮到武汉,再转车。
10月6号早上返回到苏。

troy 发表于 2008-9-29 14:53:32

$varphi(n)$ 如何计算?

gxqcn 发表于 2008-9-29 14:58:14

欧拉函数,见 http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0

若 n = p_1^{k_1} p_2^{k_2} \cdots p_r^{k_r},则

\varphi(n) = \prod_{p|n} p^{\alpha_p-1}(p-1) = n\prod_{p|n}(1-\frac{1}{p})

troy 发表于 2008-9-29 15:11:05

原帖由 gxqcn 于 2008-9-29 14:10 发表 http://bbs.emath.ac.cn/images/common/back.gif
只要给定的数与10互素即一定存在。

由欧拉定理,10^varphi(n) -= 1 (mod n)
在 varphi(n) 因子中选一个最小的整数 x,使 10^x -= 1 (mod n) 成立,
则 x 个8即为n的最小符合要求的倍数。

在 varphi(n) 因子中选一个最小的整数 x,使 10^x -= 1 (mod n) 成立。
我是用C 语言去实现的,这里求解x的时候,是不是要用大数,或有更好的方法?
页: [1] 2
查看完整版本: 如何判读一个数的倍数全有8组成