C ++のプライム周波数を持つ配列要素?
配列 同じデータ型の要素のコンテナです。
プライム周波数 配列の要素の出現回数が素数であることを意味します。
したがって、これらの定義に基づいて、プライム周波数を持つ配列要素を見つける問題があります。配列の文字列が与えられます。文字の頻度を見つけて、頻度が素数であるかどうかを確認してから、素数の頻度を持つ要素を数える必要があります。
例を見てみましょう
Input: str = “helloworld” Output: 2
説明
文字の出現回数は-
h -> 1 e -> 1 l -> 3 o -> 2 w-> 1 r -> 1 d -> 1
lは素数回、つまり3回発生し、oは素数回、つまり2回発生します。
文字列のトラバースを開始し、C ++のマップを使用して各文字の出現をカウントし、出現が素数であるかどうかを確認します。プライムの場合はカウントをインクリメントし、そうでない場合はカウントをインクリメントしません。
アルゴリズム
要素の素数頻度をチェックするために、の要素の出現をチェックし、カウントが素数であるかどうかをチェックします。このために、検討中のマップを使用します。
例
#include <iostream> #include <bits/stdc++.h> using namespace std; int check_prime(int n) { if (n <= 1) return 0; if (n <= 3) return 1; if (n % 2 == 0 || n % 3 == 0) return 0; for (int i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return 0; return 1; } int countPrimeFrequent(string s) { int count = 0; unordered_map<char, int> mp; for (int i = 0; i < s.length(); i++) mp[s[i]]++; for (auto it = mp.begin(); it != mp.end(); it++) { if (check_prime(it->second)) count++; } return count; } int main() { string s = "helloworld"; cout << countPrimeFrequent(s); return 0; }
出力
The repeat elements of the array are : 2
-
C++の配列内のすべてのK番目の素数の積
n個の素数とkを含む配列arr[n]が与えられます。タスクは、配列内のk番目の素数ごとの積を見つけることです。 同様に、配列arr [] ={3、5、7、11}およびk =2があるため、すべてのk、つまり5および11の後の素数は、5x11 =55となる積を見つけて、結果を出力する必要があります。出力として。 素数とは何ですか? 素数は自然数であり、1またはその数自体を除いて他の数で割ることはできません。素数のいくつかは2、3、5、7、11、13などです。 例 Input: arr[] = {3, 5, 7, 11, 13} k= 2 Output: 55 Explanation: ev
-
C ++のO(1)空間で要素0からN-1の定数配列で重複を検索します
0からn-1までの数字のリストがあるとします。数は可能な限り何度でも繰り返すことができます。余分なスペースをとらずに繰り返し番号を見つける必要があります。 n =7の値で、リストが[5、2、3、5、1、6、2、3、4、5]のような場合。答えは5、2、3になります。 これを解決するには、次の手順に従う必要があります- リスト内の各要素eについて、次の手順を実行します- sign:=A[eの絶対値] 符号が正の場合は負にします それ以外の場合は繰り返しです。 例 #include<iostream> #include<cmath> using namespace