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