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

【C言語】最初のN個の素数の合計を求めるプログラム

最初のN個の素数の合計を求めるプログラムでは、まず素数を1つずつ判定しながら見つけていき、見つかった素数を順番に加算することで合計を計算します。この合計値は整数型の変数に保存され、すべての処理が完了した後に画面へ出力されます。

具体的には、コードはある数値を受け取り、それが素数であるかどうかをチェックします。素数であれば合計を格納する変数に加算し、N個の素数が見つかるまで同じ処理を繰り返します。その後、最終的な合計値を出力してプログラムを終了します。

アルゴリズムの流れ

  1. 変数jを1から開始し、1ずつ増やしながら各数値について素数判定を行います。
  2. isprime関数は、2からj/2までの整数で割り切れるかどうかを確認します。割り切れる数がひとつでも存在すれば、その数は素数ではないと判断します。
  3. 素数と判定された数値は合計変数sumに加算され、カウンタiがインクリメントされます。
  4. iがnに達した時点でループを抜け、printf関数によって合計値を出力します。

サンプルコード

#include <stdio.h>
int isprime(int j) {
    int count=0;
    for(int i = 2 ; i <= j/2; i++) {
        if(j%i == 0) {
            count = 1;
        }
    }
    if(count == 0) {
        return 1;
    }
    else
        return 0;
}
int main(void) {
    int n = 5;
    int i=0, j= 1;
    int sum = 0;
    while(1) {
        j++;
        if(isprime(j)) {
            sum += j;
            i++;
        }
        if(i == n) {
            break;
        }
    }
    printf("The sum of first %d prime numbers is %d", n, sum);
    return 0;
}

実行結果

The sum of the first 5 prime numbers is 28

この例では、最初の5つの素数(2、3、5、7、11)の合計である「28」が出力されます。なお、素数判定の範囲をj/2ではなく√jまでに絞ることで、計算量を抑えより効率的に処理を行うことも可能です。

  1. 最初のn個の自然数の立方和を求めるJavaプログラム

    以下に示すのは、最初のn個の自然数について、それぞれの数を3乗した値(立方数)の合計を計算するJavaプログラムです。 サンプルコード import java.util.*; import java.lang.*; public class Demo{ public static int first_n_nat_no(int val){ int ini_sum = 0; for (int x=1; x<=val; x++) ini_sum += x*x*x; return ini_sum; }

  2. Pythonで最初のn個の奇数の合計を求めるプログラム

    数値 n が与えられたとき、最初の n 個の正の奇数の合計を求めることを考えます。たとえば、入力が 7 の場合、出力は 49 になります。これは [1 + 3 + 5 + 7 + 9 + 11 + 13] = 49 となるためです。解決の手順この問題は、以下のステップに従って解くことができます。n が 0 と等しい場合は、0 を返します。変数を初期化します。sum := 1、count := 0、temp := 1count < n - 1 の間、次の処理を繰り返します。temp := temp + 2(次の奇数を生成)sum := sum + temp(合計に加算)count := c