找出在範圍內不可被任何數整除的數字,使用C++
在本文中,我們將討論查找 1 到 n(給定)之間的數字的問題,這些數字不能被 2 到 10 之間的任何數字整除。讓我們透過一些例子來理解這一點-
Input : num = 14 Output : 3 Explanation: There are three numbers, 1, 11, and 13, which are not divisible. Input : num = 21 Output : 5 Explanation: 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 整除。
我們要找出所有能被 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 <bits/stdc++.h> 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++的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Go語言中的整除運算及餘數計算方法詳解在Go語言中,整除運算和餘數計算是常見的數學運算運算。本文將介紹如何在Go語言中進行整除運算和餘數計算,同時提供具體的程式碼範例。整除運算在Go語言中,整除運算使用的是/符號。整除運算指的是取兩個數相除的商,結果為整數部分,即忽略小數部分,不會進行四捨五入操作。整除運算通常用於計算除法後的整數商。程式碼範例:package

待機是一種鎖定螢幕模式,當iPhone插入充電器並以水平(或橫向)方向定位時啟動。它由三個不同的螢幕組成,其中一個是全螢幕時間顯示。繼續閱讀以了解如何變更時鐘的樣式。 StandBy的第三個畫面顯示各種主題的時間和日期,您可以垂直滑動。某些主題也會顯示其他訊息,例如溫度或下一個鬧鐘。如果您按住任何時鐘,則可以在不同的主題之間切換,包括數位、類比、世界、太陽能和浮動。 Float以可自訂的顏色以大氣泡數字顯示時間,Solar具有更多標準字體,具有不同顏色的太陽耀斑設計,而World則透過突出顯示世界地

產生隨機數或字母數字字串的能力在許多情況下都會派上用場。您可以使用它在遊戲中的不同位置生成敵人或食物。您也可以使用它向用戶建議隨機密碼或建立文件名來保存文件。我寫了一篇關於如何在PHP中產生隨機字母數字字串的教學。我在這篇文章的開頭說,幾乎沒有事件是真正隨機的,同樣的情況也適用於隨機數或字串生成。在本教程中,我將向您展示如何在JavaScript中產生偽隨機字母數字字串。在JavaScript中產生隨機數字讓我們從產生隨機數開始。我想到的第一個方法是Math.random(),它回傳一個浮

在任何語言中編寫程式時,將數字表示為輸出是一項有趣且重要的任務。對於整數類型(short、long或medium類型的資料),很容易將數字表示為輸出。對於浮點數(float或double類型),有時我們需要將其四捨五入到特定的小數位數。例如,如果我們想將52.24568表示為三位小數,需要進行一些預處理。在本文中,我們將介紹幾種技術,透過四捨五入將浮點數表示為特定的小數位數。在不同的方法中,使用類似C的格式化字串、使用精度參數以及使用數學函式庫中的round()函數是很重要的。讓我們逐一來看。帶有

使用java的StringBuilder.replace()函數取代指定範圍的字元在Java中,StringBuilder類別提供了replace()方法,可以用來取代字串中指定範圍的字元。方法的語法如下:publicStringBuilderreplace(intstart,intend,Stringstr)上面的方法用來取代從索引star

我們都知道不是任何數字的平方的數字,如2、3、5、7、8等。非平方數有N個,不可能知道每個數字。因此,在本文中,我們將解釋有關無平方數或非平方數的所有內容,以及在C++中尋找第N個非平方數的方法。第N個非平方數如果一個數是整數的平方,則該數稱為完全平方數。完全平方數的一些例子是-1issquareof14issquareof29issquareof316issquareof425issquareof5如果一個數不是任何整數的平方,則該數稱為非平方數。例如,前15個非平方數是-2,3,5,6,

在本文中,我們將討論查找1到n(給定)之間的數字的問題,這些數字不能被2到10之間的任何數字整除。讓我們透過一些例子來理解這一點-Input:num=14Output:3Explanation:Therearethreenumbers,1,11,and13,whicharenotdivisible.Input:num=21Output:5Explanation:Therearefivenumbers1,11,13,17,and19,whicharen的解題方法簡單方法如果

Java中的數字重要的是要理解數字類不是一個有形的類,而是一個抽象的類。在它內部,我們有一組定義其功能的包裝類別。這些包裝類別包括Integer、Byte、Double、Short、Float和Long。您可能會注意到,這些與我們之前討論的基本資料類型相同,但它們表示為具有大寫名稱的單獨類,以符合類命名約定。根據特定函數或程式範圍的要求,編譯器會自動將原始資料類型轉換為對象,反之亦然,且數字類別是java.lang套件的一部分。此過程稱為自動裝箱和拆箱。透過掌握數字類別及其對應的包裝類別的抽象性質,我們可以
