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

数が素数であるかどうかをチェックするCプログラム?


素数は、2つの数自体と1つの数だけで割り切れる数です。数の因数はそれを割ることができる数です。

最初の10個の素数のリストは2、3、5、7、11、13、17、23、29、31です。

素数でない数は合成数です。合成数は、3つ以上の数で割ることができる数です。

次に、Elserは素数と合成数であり、それ自体でしか分割できないため、素数でも合成数でもない1があります。

数が素数であるか合成数であるかを確認して、数が素数であるかどうかを確認する方法2つの条件を確認する必要があります

1)整数は1より大きい必要があります。

2)2つの要素、つまり1つと数自体だけが含まれている必要があります。

これらの2つの条件が満たされている場合、数値は素数であると言えます。

私たちのプログラムでは、その数をその数よりも小さい各数で割ることを確認します。与えられた数よりも小さい数がそれを割る場合、それは素数ではありません。それ以外の場合は素数です。

2つの数の例を見て、このプロセスを使用してそれらが素数であるかどうかを確認しましょう。

Input − Number1 − 42
Output − 42 is not a prime number

論理-42を1より大きく42より小さいすべての数値で除算します。したがって、

42/2 =21、つまり42は2で割り切れる。これは、42が別の数で割り切れるため、素数ではないことを意味します。

Input − Number2 − 7
Output − 7 is a prime number

論理-1より大きく7より小さいすべての数値で7を除算します。したがって、

7は2で割り切れないため、コードは次の数値、つまり3をチェックします

7は3で割り切れないため、コードは次の数値、つまり4をチェックします

7は4で割り切れないため、コードは次の数値、つまり5をチェックします

7は5で割り切れないため、コードは次の数値、つまり6をチェックします

7は6で割り切れません。これは、7が1で割り切れることを意味し、7は7が素数であることを意味します。

上記のロジックを見ると、その数は1000プラスまたは100000プラスになります。プログラムは、ループのforループに対してその回数の反復を行うため、このメソッドは多くの計算時間を必要とします。したがって、反復回数を減らすには、より良い方法である必要があります。

これに対する最適化されたソリューションは、ループを半分だけ実行することです。これは、数が77の場合、ループは38までしか実行されないことを意味します。これにより、必要な反復回数が減るので、このアルゴリズムを使用してプログラムを作成します。

#include <stdio.h>
int main() {
   int num = 33, flag = 0;
   for(int i=2 ; i < num/2 ; i++) {
      if(num%i == 0) {
         printf("%d is not a prime number", num);
         flag = 1;
         break;
      }
   }
   if(flag == 0) {
      printf("%d is a prime number", num);
   }
}

出力

33 is a prime number

  1. PythonでNが二面素数であるかどうかを確認します

    数nがあるとします。 nが二面素数であるかどうかを確認する必要があります。数自体が素数であり、ディスプレイの向き(通常または上下逆)に関係なく、7セグメントディスプレイを使用して同じ数または他の素数が表示される場合、その数は二面素数であると言われます。 したがって、入力がn =1181のような場合、出力はTrueになります 2つ目は、1つ目の逆さまの形式で、どちらも素数です。 これを解決するには、次の手順に従います- 関数up_side_down()を定義します。これにはnがかかります temp:=n、total:=0 0の場合、do d:=temp mod 10

  2. 素数をチェックするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数が素数であるかどうかを確認する必要があります。 1より大きい特定の正の数で、1以外の要素はなく、その数自体は素数と呼ばれます。 2、3、5、7などは他の要素がないため素数です。 以下のこのプログラムでは、素数または非素数の性質について番号がチェックされます。 1以下の数は素数とは言えません。したがって、数値が1より大きい場合にのみ反復します。 ここで、その数が2から(num-1 // 2)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら