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

配列内の最小および最大素数へのCプログラム


問題の説明

n個の正の整数の配列が与えられます。最小値と最大値を持つ素数を見つける必要があります。

指定された配列が-

の場合
arr [] = {10, 4, 1, 12, 13, 7, 6, 2, 27, 33}
then minimum prime number is 2 and maximum prime number is 13

アルゴリズム

1. Find maximum number from given number. Let us call it maxNumber
2. Generate prime numbers from 1 to maxNumber and store them in a dynamic array
3. Iterate input array and use dynamic array to find prime number with minimum and maximum value

#include <iostream>
#include <vector>
#include <climit>
#define SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
using namespace std;
void printMinAndMaxPrimes(int *arr, int n){
   int maxNumber = *max_element(arr, arr + n);
   vector<bool> primes(maxNumber + 1, true);
   primes[0] = primes[1] = false;
   for (int p = 2; p * p <= maxNumber; ++i) {
      if (primes[p]) {
         for (int i = p * 2; i <= maxNumber; i += p) {
            primes[p] = false;
         }
      }
   }
   int minPrime = INT_MAX;
   int maxPrime = INT_MIN;
   for (int i = 0; i < n; ++i) {
      if (primes[arr[i]]) {
         minPrime = min(minPrime, arr[i]);
         maxPrime = max(maxPrime, arr[i]);
      }
   }
   cout << "Prime number of min value = " << minPrime << "\n";
   cout << "Prime number of max value = " << maxPrime << "\n";
}
int main(){
   int arr [] = {10, 4, 1, 12, 13, 7, 6, 2, 27, 33};
   printMinAndMaxPrimes(arr, SIZE(arr));
   return 0;
}

出力

上記のプログラムをコンパイルして実行する場合。次の出力を生成します-

Prime number of min value = 2
Prime number of max value = 13

  1. 配列内の最大要素と最小要素を見つけるC#プログラム

    すべての要素を比較できるように、最小要素と最大要素を最初の要素に設定します。 最大に。 if(arr[i]>max) {    max = arr[i]; } 最低限。 if(arr[i]<min) {    min = arr[i]; } 次のコードを実行して、最大要素と最小要素の位置を見つけることができます。 例 using System; public class Demo {    public static void Main() {       int[] arr = new

  2. Pythonで合計n個のフィボナッチ数の最小数を見つけるプログラム?

    数nがあるとします。 nまで加算するために必要なフィボナッチ数の最小数を見つける必要があります。 したがって、入力がn =20の場合、出力は3になります。これは、フィボナッチ数[2、5、13]を使用して合計を20にすることができるためです。 これを解決するために、次の手順に従います res:=0 fibo:=値が[1、1]のリスト fiboの最後の要素<=n、do x:=fiboの最後の2つの要素の合計 xをfiboに挿入 nがゼロ以外の場合、実行 n、do fiboから最後の要素を削除する n:=n-fiboの最後の要素