在C++中,Midy的定理

在c++中,midy的定理

我们得到整数值a_num,它将存储分子和p_den,它将存储应该是素数的分母。任务是检查a_num除以p_den后的运算是否证明了midy定理。

证明Midy定理的步骤是-

输入分子为 a_num,分母为 p_den,应始终为素数。

将数字相除。检查重复的小数值。

存储小数值,直到它们不重复。

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

检查数字是否重复甚至,如果是,则将它们分成两半

将两个数字相加。如果输出是一个 9 的字符串,那么它证明了 Midy 定理。

让我们看看这种情况的各种输入输出场景 –

In − int a_num = 1 和 int p_den = 19

输出− 重复小数为:052631578947368421 证明了 Midy 定理

解释 − 按照上述步骤检查 Midy 定理,即

除 1 / 19 = 052631578947368421

重复的十进制值为 -:052631578947368421。

将数字分成两半,即 052631578 947368421。

将两者相加两半即 052631578 + 947368421 = 999,999,999。

正如我们所见,999,999,999 是 9 的字符串,它证明了米迪定理。

ul>

输入  −int a_num = 49,int p_den = 7

输出 − 无重复小数

解释− 正如我们所看到的,49/7 不会生成小数值,因为 49 可以完全被 7 整除。因此,输出为“无重复小数”。

以下程序中使用的方法是如下

输入整数值作为int a_num和int p_den。

调用函数作为Midys_theorem( a_num, p_den) 来证明 Midy 定理。

在函数 check_Midys() 内

创建变量为int 首先到 0,int 最后到 0

检查函数 check(val) 是否返回 FALSE,然后打印 Midy 定理不适用。

ELSE IF len % 2 = 0 然后开始循环 FOR 从 i 到 0 直到 i 小于 len/2 并将first 设置为first * 10 + (str[i] – ‘0’) 并将last 设置为last * 10 + (str[len / 2 + i] – ‘0’) 并打印证明的 Midy 定理。

ELSE,打印 Midy 定理不适用.

在函数Midys_theorem(int a_num, int p_den)内部

创建一个map类型变量将整数类型值映射为map_val并清除地图。

将提醒设置为a_num % p_den。

在没有提醒时开始等于0并且map_val.find(reminder)等于map_val.end()然后设置map_val[reminder]为result.length(),reminder为reminder * 10,temp为reminder / p_den,result为result + to_string(temp)并提醒提醒 % p_den。

检查 IF 余数 = 0,然后返回 -1 ELSE,将计数设置为result.substr(map_val[reminder])

返回计数

函数内部bool check(int val)

从 i 到 2 开始循环 FOR,直到 i 小于 val/2。检查 IF val % i = 0,然后返回 FALSE,否则返回 TRUE。

示例

#include using namespace std;bool check(int val){   for(int i = 2; i  map_val;   map_val.clear();   int reminder = a_num % p_den;   while((reminder != 0) && (map_val.find(reminder) == map_val.end())){      map_val[reminder] = result.length();      reminder = reminder * 10;      int temp = reminder / p_den;      result += to_string(temp);      reminder = reminder % p_den;   }   if(reminder == 0){      return "-1";   }   else{      string count = result.substr(map_val[reminder]);      return count;   }}int main(){   int a_num = 1;   int p_den = 19;   string result = Midys_theorem(a_num, p_den);   if(result == "-1"){      cout

输出

如果我们运行上面的代码,它将生成以下输出

Repeating decimals are: 052631578947368421Proved Midy's theorem

登录后复制

以上就是在C++中,Midy的定理的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2582212.html

(0)
上一篇 2025年3月6日 14:10:16
下一篇 2025年3月6日 09:32:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在C语言中,将数组中的数字除以前一个数字后,求和

    数组是相同数据类型的元素序列。在这个问题中,我们将考虑使用整数数组来解决问题。在这个问题中,我们将通过将元素与其前面的元素相除来找到元素的总和。 让我们举几个例子来更好地理解这个问题 – 示例 1 – Array :…

    2025年3月6日
    200
  • 在一棵树中,使用C++查询子树的深度优先搜索

    在这个问题中,我们得到一棵二叉树,我们需要从特定节点执行 dfs,其中我们假设给定节点作为根并从中执行 dfs。 在上面的树中假设我们需要执行 DFS节点 F 在本教程中,我们将应用一些非正统的方法,以便大大降低我们的时间复杂度,因此我们也…

    2025年3月6日
    200
  • 在C语言中,二项式系数的最大项值是多少?

    给定一个正整数‘N’。我们需要找到所有二项式系数中的最大系数项。 二项式系数序列为nC0,nC1,nC2,…,nCr,…,nCn-2,nCn-1,nCn 找到nCr的最大值。 nCr = n! / r! * (n – r)! 登录后复制 输…

    2025年3月6日
    200
  • 使用C++从字符串中删除给定的单词

    在本文中,我们将解决从给定字符串中删除给定单词的问题。例如 – Input : str = “remove a given word ”, word = “ remove ”Output : “ a given word ”In…

    2025年3月6日
    200
  • C语言中的圣诞树程序

    在这里,我们将看到一个有趣的问题。在这个问题中,我们将看到如何随机打印圣诞树。因此,树会像圣诞树灯一样闪烁。 为了打印圣诞树,我们将打印各种大小的金字塔,一个接一个地放置。对于装饰叶子,将从给定的字符列表中随机打印一个字符。高度和随机性是可…

    2025年3月6日
    200
  • C语言编写的汉诺塔程序

    汉诺塔是一个数学难题。它由三根杆和若干个不同大小的圆盘组成,这些圆盘可以滑动到任意一根杆上。难题以圆盘按大小升序整齐堆叠在一根杆上开始,最小的圆盘在顶部。我们必须将相同的堆叠移到第三根杆上。 难题的目标是将整个堆叠移动到另一根杆上,遵守以下…

    2025年3月6日
    200
  • 获取和设置C语言中线程属性的堆栈大小

    要在C中获取和设置线程属性的堆栈大小,我们使用以下线程属性: pthread_attr_getstacksize() 用于获取线程堆栈大小。stacksize属性给出了分配给线程堆栈的最小堆栈大小。如果成功运行,则返回0,否则返回任何值。 …

    2025年3月6日
    200
  • 如何使用C语言将内容打印到文件中?

    我们可以用 C 编写一个程序,用于将一些内容打印到文件中,并打印以下内容 – 输入到文件中的字符数。 反转输入到文件中的字符。 首先,尝试通过以写入模式打开文件来将一定数量的字符存储到文件中。 用于输入将数据写入文件,我们使用如…

    2025年3月6日
    200
  • 解释C语言中逻辑运算符和赋值运算符的概念

    首先,让我们学习一下逻辑运算符。 逻辑运算符 这些用于逻辑上组合两个(或更多)表达式。 它们是逻辑与(&&)、逻辑或(||)和逻辑非(!) 逻辑与(&&) 立即学习“C语言免费学习笔记(深入)”; exp1 …

    2025年3月6日
    200
  • 提交C++作业

    在本教程中,我们必须编写一个算法来找到一种在不被监考人员发现的情况下通过作业的方法。每个学生都必须向监考人员提交作业。学生 A 的作业是交给学生 B 的,因此学生 B 必须在监考人员注意到的情况下将作业返回/传递给学生 A。 所有学生都坐在…

    2025年3月6日
    200

发表回复

登录后才能评论