正の偶数(2より大きい)を取り、この数になる最小の素数のペアを与えるコードを書きたいと思います。9桁までの整数を処理するには、このプログラムが必要です。
私の目的は、次のようなものを作成することです。
Please enter a positive even integer ( greater than 2 ) : 10 The first primes adding : 3+7=10. Please enter a positive even integer ( greater than 2 ) : 160 The first primes adding : 3+157=160. Please enter a positive even integer ( greater than 2 ) : 18456 The first primes adding : 5+18451=18456.
stdio.h以外のライブラリは使いたくない。配列、文字列、または最も基本的なツールボックス以外のものを使用したくありません:scanf、printf、for、while、do-while、if、else if、break、continue、および基本演算子(<、>、 ==、= +、!=、%、*、/など)。他の関数、特にis_primeは使用しないでください。
有効なエントリが与えられるまでループするように、入力を自分のニーズに制限する方法を知っています。
だから今、私はアルゴリズムを理解しようとしています。
私は次のようなwhileループを開始することを考えました:
#include <stdio.h>
long first, second, sum, goldbach, min;
long a,b,i,k; //indices
int main (){
while (1){
printf("Please enter a positive integer :\n");
scanf("%ld",&goldbach);
if ((goldbach>2)&&((goldbach%2)==0)) break;
else printf("Wrong input, ");
}
while (sum!=goldbach){
for (a=3;a<goldbach;a=(a+2))
for (i=2;(goldbach-a)%i;i++)
first = a;
for (b=5;b<goldbach;b=(b+2))
for (k=2;(goldbach-b)%k;k++)
sum = first + second;
}
}