重复单位可整除性(使用C++)

重复单位可整除性(使用c++)

在本文中,我们将讨论找到可被 N 整除的重复单元的数量。重复单元只是 1 的重复数量,令 R(k) 为重复单元,其中 k 为 1 的长度。例如 R(4) = 1111。因此我们需要找到 R(k) 可被 N 整除的 k 的最小数量,例如 –

Input : N = 13Output : k = 6Explanation : R(6) i.e 111111 is divisible by 13.Input : N = 31Output : k = 15

寻找解决方案的方法

您可以通过检查从 1 开始的 k 的每个值来解决此问题,其中 R(k) 能否被 N 整除。但是使用此解决方案,我们将无法确定 N 是否可被 R(k) 的任何值整除。这将使程序变得过于复杂,甚至可能无法运行。

解决该程序的有效方法是,

检查 N 是否与 10 互质。如果不是,则对于任何 k 值,R(k) 都不能被 N 整除。如果是,则对于每个重复单元R(1)、R(2)、R(3)…等等,计算R(i)与N相除的余数,因此余数有n个。找到 R(i) 和 R(j) 的相同余数,其中 R(i) 和 R(j) 是两个重复单元,以便 R(i) – R(j) 可被 N 整除.aR(i) 和 R(j) 的差将重复单位乘以 10 的某个幂,但 10 和 N 互质,因此 R(k) 将被 N 整除。

示例

#include using namespace std;int main() {   int N = 31;   int k = 1;   // checking if N is coprime with 10.   if (N % 2 == 0 || N % 5 == 0){      k = 0;   } else {      int r = 1;      int power = 1;      // check until the remainder is divisible by N.      while (r % N != 0) {         k++;         power = power * 10 % N;         r = (r + power) % N;      }   }   cout << "Value for k : "<< k;   return 0;}

输出

Value for k : 15

结论

在本文中,我们讨论寻找 R(k) 的 k 值,其中 R(k) 是可被给定 N 整除的重复单元。我们讨论了一种乐观的方法来找到k 的值。我们还讨论了解决这个问题的 C++ 代码。您可以使用任何其他语言(例如 Java、C、Python 等)编写此代码。我们希望本文对您有所帮助。

立即学习“C++免费学习笔记(深入)”;

以上就是重复单位可整除性(使用C++)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1443616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 20:22:08
下一篇 2025年12月15日 19:28:01

相关推荐

  • 使用C++编写的数组元素排序的排名

    在给定的问题中,我们需要对数组的所有给定元素进行排名,最小的数字具有最小的排名,最大的具有最大的排名。例如,我们还需要根据数字的频率来更改数字的排名 – Input : 20 30 10Output : 2.0 3.0 1.0Input : 10 12 15 12 10 25 12Out…

    2025年12月17日
    000
  • 使用C++找出在第L个和第R个索引之间只有设置位的数字

    在给定的问题中,我们需要找到一个数字的值,该数字在给定的范围L、R之间具有所有的设置位。例如 − Input: L = 1, R = 5Output: 62Explanation: representation of given L and R in binary form is 0..011111…

    2025年12月17日
    000
  • 使用C++编写,找到一个集合上的自反关系的数量

    在本文中,我们将解释在一个集合上找到反身关系的方法。在这个问题中,我们给出一个数字n,以及一个由n个自然数组成的集合,我们必须确定反身关系的数量。 反身关系 – 如果对于集合A中的每个’a’,(a, a)属于关系R,则称关系R是集合A上的反身关系。例如 &#821…

    2025年12月17日
    000
  • 在C编程中,将序列2、6、12、20、30的前N项求和

    要求这个级数的总和,我们首先分析这个级数。 该级数是:2,6,12,20,30… 示例 For n = 6Sum = 112On analysis, (1+1),(2+4),(3+9),(4+16)…(1+12), (2+22), (3+32), (4+42), can be divided i…

    2025年12月17日
    000
  • C程序用于检查一个数是否为素数

    素数是只能被两个数字本身和一整除的数字。一个数的因数是能整除该数的数。 前十个素数的列表是 2,3,5,7,11,13,17,23,29,31。 非质数是合数。合数是可以被两个以上的数整除的数。 如果是质数和合数,则 1 既不是质数也不是合数,因为它只能被自身整除。 如何检查一个数是否为质数或合数 …

    2025年12月17日
    000
  • 在Java中如何处理SQLException与数据库操作异常_数据库异常处理实践

    SQLException是Java中处理数据库操作异常的关键,需通过try-with-resources自动管理资源,并利用getMessage()、getSQLState()、getErrorCode()等方法获取详细错误信息,结合分类处理与日志记录提升程序健壮性与可维护性。 在Java中进行数据…

    2025年12月1日 java
    000
  • Word/Int转Real类型方法

    在pl%ignore_a_1%中,real类型广泛应用于浮点数运算。由于word或int类型无法直接参与real类型的数学计算,必须先将其转换为real格式。可通过系统提供的类型转换函数或指令实现数据类型的统一,确保运算正确进行。具体步骤如下: 1、 使用MOVE指令将WORD或INT类型的变量传输…

    2025年12月1日 软件教程
    000
  • java怎么实现数据库事务管理 保证数据一致性的事务控制方法

    使用事务管理确保数据一致性,首选Spring的@Transactional注解实现声明式事务控制,支持传播行为与隔离级别设置,分布式场景可选Seata或RocketMQ事务消息保障最终一致性。 在Java开发中,保证数据库操作的数据一致性,关键在于正确使用事务管理机制。事务确保一组数据库操作要么全部…

    2025年11月28日 java
    000
  • 一点资讯如何规划内容起号_一点资讯内容规划与起号实操全攻略

    科学规划内容是成功起号的关键。首先明确账号定位,结合平台用户画像确定目标人群并垂直输出;其次通过竞品分析提炼热门选题与内容形式,模仿爆款结构进行差异化创作;接着建立选题库,结合热点工具制定周度发布计划,保持稳定更新;同时优化标题、封面与排版,提升点击率与阅读体验;最后聚焦一点号指数五大维度,提升质量…

    2025年11月4日 自媒体
    000
  • 基于CodeSys和Raspberry Pi制作简单PLC

    jzgkchina 工控技术分享平台 1、概述 目前市场上常见的PLC品牌包括:SIEMENS、Rockwell、Schneider、Mitsubishi、Beckhoff、GE、Omron、台达等。尽管这些品牌的PLC各有特色,但它们使用的编程语言大多相似,如LD、ST、FBD、CFC、IL、GR…

    2025年11月4日 系统教程
    000
  • VC编程关闭指定窗口

    本文介绍如何使用vc编程技术,通过窗口标题自动关闭指定运行程序的方法。目标窗口的标题可从任务栏中获取,适用于需要在主程序中自动化终止其他进程的应用场景。通过匹配窗口名称,程序能够准确识别并结束对应的进程,减少人工干预,提高操作的自动化水平,尤其适合开发者在项目中集成进程控制功能。 1、 打开VC6.…

    2025年11月1日 软件教程
    000

发表回复

登录后才能评论
关注微信