C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++を使用してNth_Non_Square_Numberを検索します


2、3、5、7、8などのどの数の二乗でもない数については誰もが知っています。非二乗数はN番目にあり、すべての数を知ることは不可能です。したがって、この記事では、平方フリー数または非平方数についてのすべてと、C++でN番目の非平方数を見つける方法について説明します。

N番目の非平方数

整数の平方である場合、その数は完全な平方であると言われます。完全な平方数の例は次のとおりです-

1 is square of 1
4 is square of 2
9 is square of 3
16 is square of 4
25 is square of 5

整数の二乗でない場合、その数は非二乗数であると言われます。たとえば、最初の15個の非平方数は-

です。
2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 17, 18, 19

N番目の非平方数を見つける方法

したがって、これがN番目の非平方数を見つける例です-

Input : 2
Output : 3
Explanation : 2nd Non square number is 3 (after 2 which is first non square number)

Input : 5
Output : 7
Explanation : 7th Non square number is 7 ( after 2,3,5,6 which are first four non square

上記の例を見た後、N番目の非平方数を見つけるには、n番目の数のカウントを開始し、各整数が完全な平方であるかどうかを確認し、次の数をカウントしないという解決策を考え出すことができます。完全な正方形。つまり、数が完全な正方形であるかどうかを数えます。

N番目の非平方数を見つけるためのC++プログラムの作成

C++でN番目の非平方数を見つけるための完全な構文を作成しました。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n; // Taking input from the user.
    int i = 2; // as 0 and 1 are squares of themselves so we start calculating from 2.
    int cnt = 0; // declaring counter variable;
    while(cnt != n){// the loop will terminate when out counter will have the same value as n.
        int a = sqrt(i);
        if(i != a*a)
            cnt++;
        if(cnt != n)
            i++;
    }
    cout << i << "\n"; // printing the nth non square number.
}

出力

5

(入力として3を指定すると、出力として5が取得されます)

上記のコードについて簡単に説明しましょう。

ステップ1 −ユーザーからの入力を受け取り、カウントを0に設定します。

cin >> n; // Taking input from the user.
int i = 2; // as 0 and 1 are squares of themselves so we start calculating from 2.
int cnt = 0; // declaring counter variable;

ステップ2 −非平方数を数え、平方数をスキップします。

while(cnt != n) // the loop will terminate when out counter will have the same value as n.{
   int a = sqrt(i); // finding square root using sqrt() function.
   if(i != a*a) // check whether the number is a perfect square or not.
      cnt++; // incrementing counter if found non perfect number.
      if(cnt != n)
   i++;
}

ステップ3 −N番目の平方数を印刷します。

cout << i << "\n"; // printing the nth non square number.

結論

この記事では、非平方数と、C++でN番目の非平方数を見つける方法について説明しました。 C ++とは別に、このプログラムはJava、Python、Cなどのさまざまなプログラミング言語で使用できます。可能な限り簡単な方法ですべてを説明したので、この記事がお役に立てて参考になることを願っています。


  1. C++を使用して停止ステーションの数を見つける

    ポイントXとYの間にn個の中間駅があります。2つの駅が隣接しないように、s駅に停車するように列車を配置できるさまざまな方法の数を数えます。そのため、この記事では、停車駅の数を見つけるためのあらゆる可能なアプローチについて説明します。問題を見ると、sの駅数で列車を止めることができる組み合わせを見つける必要があることがわかります。 問題を解決するためのアプローチ 中間駅が8つあり、3つの中間駅で電車を止める方法を見つける必要がある例を見てみましょう。 n = 8, s = 3 (n-s)、つまり電車が止まらない駅が5つ残っています 電車が止まらないA、B、C、D、Eの5つの駅があります

  2. C++を使用してセットの反射関係の数を見つける

    この記事では、集合上の反射関係の数を見つけるためのアプローチについて説明します。この問題では、数nが与えられ、n個の自然数のセットで、反射関係の数を決定する必要があります。 反射関係 −集合Aの関係は、(a、a)が集合Aに属するすべてのaがRに属する場合、反射的と呼ばれます。たとえば、- Input : x = 1 Output : 1 Explanation : set = { 1 }, reflexive relations on A * A : { { 1 } } Input : x = 2 Output : 4 Explanation : set = { 1,2 }, reflex