【问题标题】:Can I calculate modulus of large number by taking modulus of each digit and taking sum?我可以通过取每个数字的模并求和来计算大数的模吗?
【发布时间】:2020-10-17 07:55:58
【问题描述】:

问题是,我得到了一个非常大的数字的所有数字,我需要找出它是否能被 3 整除。我尝试了我认为是错误的方法,但我不知道为什么

这是我的方法 例如问题是 (159%3)

我可以写成 (100+50+9)%3 上面的语句可以写成(1%3+5%3+9%3)%3 (a+b)%c=(a%c+b%c)%c.

这种方法有什么问题?

【问题讨论】:

  • 所有数字都按顺序排列了吗?你知道这个数字是什么,还是只是它的数字(乱序)?
  • @JohnFilleau 数字是否有序并不重要。
  • @tele 天哪,你是对的。我四年级的老师会对我感到失望:(
  • 经过教育,结果证明你的方法很好。为什么你认为它有问题?
  • 这种做法是正确的。您使用的事实是 10^n % 3 = 1。这种方法到底有什么问题?

标签: c++ algorithm numbers modulo number-theory


【解决方案1】:

要检查是否可被3 整除,您只需检查一个数字的位数之和是否可以被3 整除。例如,159 可以被 3 整除,因为 1+5+9 = 15 可以被 3 整除。

请注意,这种方法仅适用于 3 和 9,所以不要尝试将其用于其他模数!

【讨论】:

  • 但是对于各种除数,有很多类似的东西。可被 2 整除:最后一位可被 2 整除。被 4 整除:最后 2 位表示的值可被 4 整除。可被 5 整除:最后一位为 0 或 5。可被 6 整除:可被 3 整除且可被 2 整除。由 8 表示:最后 3 位表示的值可以被 8 整除。所有这些除数的余数从可除性观察中微乎其微。可被 7 整除留给读者作为练习。
  • 另一个简单的:能被 11 整除:偶数位的数字之和(从右数)等于奇数位的数字之和。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多