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

配列の非素数と素数の合計の絶対差は?


ここでは、配列のすべての素数とすべての非素数の合計の絶対差を見つける方法を説明します。この問題を解決するには、数が素数であるかどうかを確認する必要があります。素数性テストの1つの可能な方法は、数値が2からその数値の平方根までの任意の数値で割り切れないことを確認することです。したがって、このプロセスには𝑂(√𝑛)の時間がかかります。次に、合計を取得して、絶対差を見つけてください。

アルゴリズム

diffPrimeNonPrimeSum(arr)

begin
   sum_p := sum of all prime numbers in arr
   sum_np := sum of all non-prime numbers in arr
   return |sum_p – sum_np|
end

#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n){
   for(int i = 2; i<=sqrt(n); i++){
      if(n % i == 0){
         return false; //not prime
      }
   }
   return true; //prime
}
int diffPrimeNonPrimeSum(int arr[], int n) {
   int sum_p = 0, sum_np = 0;
   for(int i = 0; i<n; i++){
      if(isPrime(arr[i])){
         sum_p += arr[i];
      } else {
         sum_np += arr[i];
      }
   }
   return abs(sum_p - sum_np);
}
main() {
   int arr[] = { 5, 8, 9, 6, 21, 27, 3, 13};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "Difference: " << diffPrimeNonPrimeSum(arr, n);
}

出力

Difference: 50

  1. Javaの配列の最大素数と最小素数の違い

    問題の説明 すべての要素が1000000未満である整数の特定の配列を使用します。配列内の最大の素数と最小の素数の差を見つけます。 例 Array: [ 1, 2, 3, 4, 5 ] Largest Prime Number = 5 Smallest Prime Number = 2 Difference = 5 - 3 = 2. 解決策 エラトステネスのふるいアプローチを使用します。これは、特定の数よりも小さいすべての素数を見つけるための効率的な方法です。次に、必要な差を得るために最大と最小の素数を計算します。 例 以下は、必要な出力を見つけるためのJavaのプログラムです。 pu

  2. の二乗和と最初のn個の自然数の合計の二乗の差。

    問題の説明 与えられた数nで、2乗和と最初のn個の自然数の合計の2乗の差を見つけるプログラムを作成します。 例 n = 3 Squares of first three numbers = 3x3 + 2x2 + 1x1 = 9 + 4 + 1 = 14 Squares of sum of first three numbers = (3 + 2 + 1)x(3 + 2 + 1) = 6x6 = 36 Difference = 36 - 14 = 22 例 以下は、必要な違いを見つけるためのJavaのプログラムです。 public class JavaTester {   &