找出在范围内不可被任何数整除的数字,使用C++

找出在范围内不可被任何数整除的数字,使用c++

在本文中,我们将讨论查找 1 到 n(给定)之间的数字的问题,这些数字不能被 2 到 10 之间的任何数字整除。让我们通过一些例子来理解这一点 –

Input : num = 14Output : 3Explanation: There are three numbers, 1, 11, and 13, which are not divisible.Input : num = 21Output : 5Explanation: There are five numbers 1, 11, 13, 17, and 19, which are not divisible.

求解的方法

简单方法

如果我们检查从1到num的每个数字,它是否可以被2到10之间的任何数字整除。如果不能,然后增加计数。但这种方法会花费太多时间,从而增加了时间复杂度。

高效方法

我们能想到的最好方法是首先找到从 1 到 num 的数字,这些数字可以被范围 [ 2, 10 ] 中的任意数字,然后用 num 减去这个计数。

所以首先,我们需要找到所有能被 2, 3, 4, 5,10 整除的数字。但是能被 4、6、8 和 10 整除的数字能被 2 整除,能被 3 整除的数字能被 6 和 9 整除。

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

我们需要找到所有能被 2、3、5 整除的数字。 ,和7。我们可以根据包含-排除原则来计算。

包含-排除原则

它指出我们应该包括每个单独集合的大小,你应该删除成对交集的大小,将三组所有交集的大小相加,依此类推。

查找所有数字的公式是,

= NUM – X + Y – Z + A.

哪里,

X = num divisible by 2, 3, 5, 7 ( [num / 2] + [num / 3] + [num / 5] + [num / 7] )Y = num divisible by (2,3), (2, 5), (2, 7), (3, 5), (3, 5), (3, 7) and (5, 7) = ( [num / (2 * 3)] + [num / (2 * 5)] + [num / (2 * 7)] + [num / (3 * 5)] + num / (3 * 7)] + [num / (5 * 7)] ).Z = num divisible by (2, 3, 5), (2, 3, 7), (2, 5, 7) and (3, 5, 7) = ( [num / (2 * 3 * 5)] + [num / (2 * 3 * 7)] + [num / (2 * 5 * 7)] + [num / (3 * 5 * 7)] )A = num divisible by (2, 3, 5, 7) = ( [num / (2 * 3 * 5 * 7)] )

示例

#include using namespace std;int main() {   int n = 21, result;   // applying formula from inclusion - exclusion principle   // to find the count of numbers not divisible by any number from 2 to 10.   result = n - n / 2 - n / 3 - n / 5 - n / 7      + n / 6 + n / 10 + n / 14 + n / 15 + n / 21 + n / 35      - n / 30 - n / 42 - n / 70 - n / 105 + n / 210;   cout << "The count of numbers, not div by [2, 10] is: " << result;   return 0;}

输出

The count of numbers, not div by [2, 10] is: 5

结论

在本文中,我们讨论了查找 2 到 n 之间不可整除的数字的方法。为了解决这个问题,我们讨论了包含排除原则。我们还讨论了 C++ 程序,以应用该方法以 O(1) 复杂度获得结果。您可以使用任何其他语言(例如 Java、C、Python 等)编写此程序。我们希望本文对您有所帮助。

以上就是找出在范围内不可被任何数整除的数字,使用C++的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:12:39
下一篇 2025年12月17日 22:13:05

相关推荐

  • css怎么实现超出范围加滚动条

    css实现超出范围加滚动条的方法:我们可以使用overflow属性来实现,具体代码如【div{overflow: scroll;}】。overflow属性规定当内容溢出元素框时发生的事情。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 相关属性介绍: overf…

    2025年12月24日
    000
  • 利用CSS实现纯英文数字自动换行

    下面为大家带来一篇css代码使纯英文数字自动换行的简单实现。内容挺不错的,现在就分享给大家,也给大家做个参考。 当一个定义了宽度的块状元素中填充的全部为纯英文或者纯数字的时候,在IE和FF中都会撑大容器,不会自动换行 并且当数字或者英文中带有汉字时,会从汉字处换行,而纯汉字却可以自动换行。这个问题如…

    好文分享 2025年12月24日
    000
  • 如何设置数字输入框的范围

    设置数字输入框范围可确保数据有效性和程序稳定性,主要方法包括:①使用HTML5的min和max属性实现简单原生限制;②通过JavaScript监听input事件进行动态校验与自动修正;③采用React、Ant Design等框架或UI库提供的增强型数字输入组件;④结合HTML属性与JavaScrip…

    2025年12月22日
    000
  • html5怎么设置input只能输入数字

    在html5中,可以通过input标签的type属性来实现只能输入数字的功能,只需要将type属性的值设置为“number”即可,语法“”。 本教程操作环境:windows7系统、HTML5版、Dell G3电脑。 标签规定用户可输入数据的输入字段。 根据不同的 type 属性,输入字段有多种形态。…

    2025年12月21日
    000
  • HTML怎么实现数字焦点图轮播代码

    html怎么实现数字焦点图轮播代码?数字焦点图轮播怎么做?数字焦点图轮播需要注意什么?给大家一份实现数字焦点图轮播代码,需要的朋友可以借鉴一下。 数字焦点图轮播代码 @@##@@ @@##@@ @@##@@ 1 2 3 数字焦点图轮播代码就是这么多了,更多精彩请关注创想鸟其它相关文章! 相关阅读: …

    好文分享 2025年12月21日
    000
  • 将以下内容翻译为中文:在C编程中,求N以内能被2或5整除的数的和

    可被 2 或 5 整除的 n 个自然数的和可以通过查找 N 以内可被 2 整除的所有自然数之和以及 N 以内可被 5 整除的所有自然数之和来求出。将这两个和减去 N 以内可被 10 整除的自然数之和,这就是我们想要的结果。此方法是一种有效的方法,可用于求 n 的大值之和。 你们中的一些人一定正在考虑…

    2025年12月17日
    000
  • C/C++中的数字连线游戏?

    游戏 – 假设有一个 n × n 的方格数组。其中,一些方格是空的,一些是实心的,还有一些非实心的方格由整数 1、2、3、… 设置。每个整数在棋盘上保持或占据恰好两个不同的方格。玩家的任务是借助仅实现水平和垂直移动的简单路径来连接棋盘上每个整数的两次出现。不允许两条不同的路径…

    2025年12月17日
    000
  • 一个数字连线游戏?

    数字连接是一种逻辑谜题,涉及在网格中找到连接数字的路径。 Numberlink谜题的一个简单例子 Numberlink谜题的解答 规则 – 玩家必须用单一连续线(或路径)将网格上的所有匹配数字配对。线条不能分叉或交叉,并且数字必须位于每条线的末端(即不在中间)。只有当问题具有唯一解并且网…

    2025年12月17日
    000
  • 使一个数能被4整除,最少需要删除的数字个数

    在本文中,我们将探讨一个有趣的计算问题 – “使一个数字能被 4 整除所需删除的最少位数”。这个问题是编码竞赛和基于算法的面试中的常见问题,为提高您的问题解决能力提供了极好的练习。 首先,让我们理解问题陈述:我们有一个数字,我们的任务是删除最少数量的数字,使得剩余的数字能被 4 整除。 …

    2025年12月17日
    000
  • C++程序用于计算使数字n变为1所需的最小操作次数

    假设我们有一个数字n。我们任意执行这些操作之一 – 当 n 可被 2 整除时,将 n 替换为 n/2 当 n 可被 3 整除时,将 n 替换为 2n/3 当 n 可被 5 整除时,将 n 替换为 4n/5 立即学习“C++免费学习笔记(深入)”; li> 我们必须计算出数字 1 所…

    2025年12月17日
    100
  • 使用堆栈在C++中反转一个数字

    We are given an integer number Num as input. The goal is to find the reverse of the number using stack. Stack:- A stack is a data structure in C++ whi…

    2025年12月17日
    000
  • 在一个范围内评估给定方程的查询

    对区间 [L, R] 内的所有方程进行评估,为我们提供了这些变量的一系列值。如何使用它的示例包括建模、数据分析和解决问题的场景。 在这种情况下,我们为范围内的所有点定义方程变量值。因此,可以通过指定范围的步长并评估范围内每个变量值的方程来完成。 规格 这可以称为向数据库询问信息的请求。当满足某些要求…

    2025年12月17日
    000
  • C++程序将一个数字四舍五入到n位小数

    在任何语言中编写程序时,将数字表示为输出是一项有趣且重要的任务。对于整数类型(short、long或medium类型的数据),很容易将数字表示为输出。对于浮点数(float或double类型),有时我们需要将其四舍五入到特定的小数位数。例如,如果我们想将52.24568表示为三位小数,需要进行一些预…

    2025年12月17日
    000
  • 给定一个字符串,其中字母的表示方式被打乱的数字

    在今天的文章中,我们将深入探讨与C++中字符串操作相关的一个独特问题。这个问题是“在给定字符串中,字母表达式被打乱的数字。” 这个问题可以作为一个很好的练习,来提高你在C++中的字符串操作和数据结构技能。 问题陈述 给定一个字符串,任务是识别其中字母表达方式被打乱的数字。例如,如果输入字符串是&#8…

    2025年12月17日
    000
  • 递归程序在C++中检查一个数字是否是回文数

    我们得到一个整数作为输入。目标是使用递归来确定输入数字 Num 是否为回文。 要检查一个数字是否为回文,请反转该数字并检查两个数字是否相同。如果反转后的数等于原数,则为回文。 示例 输入− Num = 34212; 输出− 34212 不是回文! 解释− 如果我们反转 34212,则得到 21243…

    2025年12月17日
    000
  • C程序用于判断给定的数字是否为强数

    一个强数是一个数字,其中各位数字的阶乘之和等于该数字本身。 示例 123!= 1!+2!+3!                    =1+2+6 =9 在这个例子中,123不是一个强数,因为各位数字的阶乘之和不等于该数字本身。 145!=1!+4!+5!             =1+24+120…

    2025年12月17日
    000
  • 找到通过插入给定数字形成的最小数字

    在给定的数字中插入一个数字意味着在给定的数字中添加一个新的数字,可以是在数字的前面、后面或者中间。我们已经给出了一个数字和一个数字,并且必须以尽可能小的方式将该数字添加到数字中。为了方便插入操作,我们将把数字转换为字符串。此外,给定的数字也可以是负数,因此我们必须考虑这种情况。 示例示例 Input…

    2025年12月17日
    000
  • 打印给定数字的乘法表在C中

    程序描述 打印给定数字的乘法表 算法 接受用户提供的任何需要形成乘法的数字 从 I 的值开始乘以给定数 (=1) 将给定数与 I 的值递增,直到 I 值小于或等于12. 示例 /* Program to print the multiplication table of a given number…

    2025年12月17日
    000
  • 打印出在范围0-99之间缺失的元素

    它将显示用户输入的给定集中缺失的值 Given : array = {88, 105, 3, 2, 200, 0, 10};Output : 1 4-9 11-87 89-99 算法 STARTSTEP 1-> Take an array with elements, bool flag[MA…

    2025年12月17日
    000
  • 给定一个数字,编写一个C程序来找到斐波那契数列

    斐波那契数列是通过将前两个数字相加得到的一系列数字。 斐波那契数列从两个数字f0和f1开始。 fo和f1的初始值可以取0、1或1、1。 Fibonacci序列满足以下条件: fn = fn-1 + fn-2 算法 参考Fibonacci序列的算法。 STARTStep 1: Read integer…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信