目次
解決方法
簡単な方法
効率的な方法
包含-除外の原則
出力
結論
ホームページ バックエンド開発 C++ C++ を使用して、範囲内のどの数値でも割り切れない数値を検索します。

C++ を使用して、範囲内のどの数値でも割り切れない数値を検索します。

Sep 13, 2023 pm 09:21 PM
番号 割り切れる 範囲

C++ を使用して、範囲内のどの数値でも割り切れない数値を検索します。

この記事では、2 から 10 までのどの数値でも割り切れない 1 から n (指定された) までの数値を見つける問題について説明します。いくつかの例でこれを理解してみましょう -

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。包含排除原則に基づいて計算できます。

包含-除外の原則

これは、個々のセットのサイズを含める必要があり、ペアごとの交差のサイズを削除し、3 つのグループのすべての交差のサイズを追加する必要があると述べています。等々 。

すべての数値を見つける式は、

= 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 で割り切れない数値を見つける方法について説明しました。この問題を解決するために、包含排他原理について説明します。また、この方法を適用して O(1) の複雑さで結果を得る C プログラムについても説明します。このプログラムは、Java、C、Python などの他の言語で作成できます。この記事がお役に立てば幸いです。

以上がC++ を使用して、範囲内のどの数値でも割り切れない数値を検索します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go言語による整数の割り算と剰余の計算方法を詳しく解説 Go言語による整数の割り算と剰余の計算方法を詳しく解説 Mar 23, 2024 pm 06:00 PM

Go 言語の整数の除算と剰余の計算方法を詳しく解説 Go 言語では、整数の除算と剰余の計算は一般的な数学演算です。この記事では、Go 言語で整数の除算と剰余計算を行う方法と、具体的なコード例を紹介します。整数の除算演算 Go 言語では、整数の除算演算に / 記号が使用されます。整数の除算演算とは、2 つの数値を除算した商を求めることを指します。結果は整数部分になります。つまり、小数部分は無視され、四捨五入演算は実行されません。整数の除算演算は、除算後の整数商を計算するためによく使用されます。コード例: パッケージ

iOS 17: スタンバイモードでiPhoneの時計スタイルを変更する方法 iOS 17: スタンバイモードでiPhoneの時計スタイルを変更する方法 Sep 10, 2023 pm 09:21 PM

スタンバイは、iPhone が充電器に接続され、水平 (または横) 向きになっているときにアクティブになるロック画面モードです。これは 3 つの異なる画面で構成されており、そのうちの 1 つは全画面表示されます。時計のスタイルを変更する方法については、この記事を読んでください。 StandBy の 3 番目の画面には、垂直にスワイプできるさまざまなテーマで時刻と日付が表示されます。一部のテーマでは、温度や次のアラームなどの追加情報も表示されます。時計を押し続けると、デジタル、アナログ、ワールド、ソーラー、フローティングなどのさまざまなテーマを切り替えることができます。 Float はカスタマイズ可能な色の大きなバブル数字で時間を表示します。Solar はさまざまな色の太陽フレアのデザインを備えたより標準的なフォントを持ち、World は世界を強調表示して表示します。

JavaScript で乱数と文字列を生成する JavaScript で乱数と文字列を生成する Sep 02, 2023 am 08:57 AM

乱数や英数字の文字列を生成する機能は、多くの状況で役立ちます。これを使用して、ゲーム内のさまざまな場所に敵や食べ物をスポーンできます。これを使用して、ユーザーにランダムなパスワードを提案したり、ファイルを保存するためのファイル名を作成したりすることもできます。 PHP でランダムな英数字文字列を生成する方法に関するチュートリアルを書きました。この投稿の冒頭で、真にランダムなイベントはほとんどないと述べましたが、乱数や文字列の生成にも同じことが当てはまります。このチュートリアルでは、JavaScript で擬似ランダムな英数字文字列を生成する方法を説明します。 JavaScript での乱数の生成 まずは乱数を生成してみましょう。最初に思い浮かぶメソッドは Math.random() です。これは浮動小数点を返します。

数値を小数点以下 n 桁に四捨五入する C++ プログラム 数値を小数点以下 n 桁に四捨五入する C++ プログラム Sep 12, 2023 pm 05:13 PM

数値を出力として表現することは、どの言語でプログラムを作成する場合でも興味深い、重要な作業です。整数型 (short、long、または Medium 型のデータ) の場合、出力として数値を表すのは簡単です。浮動小数点数 (float または double 型) の場合、特定の小数点以下の桁数に四捨五入する必要がある場合があります。たとえば、52.24568 を小数点以下 3 桁で表現したい場合は、前処理が必要です。この記事では、浮動小数点数を四捨五入して特定の小数点以下の桁数に表現するいくつかのテクニックを紹介します。さまざまなアプローチの中でも、C に似たフォーマット文字列を使用すること、precision 引数を使用すること、および数学ライブラリのround() 関数を使用することが重要です。一つずつ見ていきましょう。と

Java の StringBuilder.replace() 関数を使用して、指定された範囲の文字を置換します。 Java の StringBuilder.replace() 関数を使用して、指定された範囲の文字を置換します。 Jul 24, 2023 pm 06:12 PM

Java の StringBuilder.replace() 関数を使用して、指定した範囲の文字を置換します。Java では、StringBuilder クラスが replace() メソッドを提供し、これを使用して文字列内の指定した範囲の文字を置換できます。このメソッドの構文は次のとおりです。 publicStringBuilderreplace(intstart,intend,Stringstr) 上記のメソッドは、インデックス スターを置き換えるために使用されます。

C++ を使用して N 番目の非平方数を見つけるコードを作成する C++ を使用して N 番目の非平方数を見つけるコードを作成する Aug 30, 2023 pm 10:41 PM

私たちは皆、2、3、5、7、8 など、数の 2 乗ではない数字を知っています。非正方形の数は N 個あり、すべての数を知ることは不可能です。そこで、この記事では、平方なしまたは非平方数と、C++ で N 番目の非平方数を見つける方法についてすべて説明します。 N 番目の非平方数 数値が整数の 2 乗である場合、その数値は完全平方と呼ばれます。完全平方数の例としては、-1issquareof14issquareof29issquareof316issquareof425issquareof5 などがあります。数値がどの整数の平方でもない場合、その数値は非正方形と呼ばれます。たとえば、最初の 15 個の非平方数は -2、3、5、6 です。

C++ を使用して、範囲内のどの数値でも割り切れない数値を検索します。 C++ を使用して、範囲内のどの数値でも割り切れない数値を検索します。 Sep 13, 2023 pm 09:21 PM

この記事では、2 から 10 までのどの数値でも割り切れない 1 から n (指定された) までの数値を見つける問題について説明します。いくつかの例でこれを理解しましょう - 入力:num=14出力:3説明:Therearethreenumbers,1,11,and13,thatarenotdivisible.Input:num=21Output:5説明:Therearefivenumbers1,11,13,17,and19,thatarenotdivisible. 解決済み シンプルなメソッド if

Java の数値 (接頭辞と文字列が 0 の場合) Java の数値 (接頭辞と文字列が 0 の場合) Aug 29, 2023 pm 01:45 PM

Java の数値 数値クラスは有形のクラスではなく、抽象クラスであることを理解することが重要です。その中には、その機能を定義する一連のラッパー クラスがあります。これらのラッパー クラスには、Integer、Byte、Double、Short、Float、Long が含まれます。これらは前に説明したのと同じ基本的なデータ型ですが、クラスの命名規則に準拠するために大文字の名前を持つ別のクラスとして表されていることに気づくでしょう。コンパイラは、特定の関数またはプログラム スコープの必要に応じて、プリミティブ データ型をオブジェクトに、またはその逆に自動的に変換します。数値クラスは java.lang パッケージの一部です。このプロセスは、オートボックス化およびアンボックス化と呼ばれます。数値クラスとそれに対応するラッパー クラスの抽象的な性質を理解することで、次のことが可能になります。

See all articles