PTA 7-4ゴールドバッハ予想(10分)

「これは、より多くの誰が速く素敵なゲームを持っていたよりも、私のタイトルと他のプレイヤーです。」

对于任何大于或等于4的偶数n,存在至少一对素数p1和p2,使得n = p1 + p2 没有人确定这个猜想是否真的成立。然而,对于给定的偶数,可以找到这样的一对素数(如果有的话)。这里的问题是编写一个程序,打印出满足给定偶数的猜想条件的所有素数对数。 一个偶数序列作为输入。可以有很多这样的数字。对应于每个数字,程序应输出上述对的数量。请注意,我们只统计不同的数对,因此不应将(p1,p2)和(p2,p1)分别计为两对不同的对。
 

入力フォーマット:

各入力ラインで指定された整数。あなたはそれぞれ整数であってもより大きいか、または電源15に2以上4未満に等しいと仮定することができます。0で終了すると、デジタル入力を表します。

出力フォーマット:

各出力行は、整数が含まれている必要があります。出力内のその他の文字は表示されません。

サンプル入力:

ここでは、入力のセットを与えられています。例えば:

6
10
12
0
 

出力例:

出力に対応し、ここで考えます。例えば:

1
2
1


著者:ACMグループ
単位:集美大学
制限時間:400ミリ秒
メモリ制限:64メガバイト
コードの長さの制限:16キロバイト
 
1つの インポートjava.io.BufferedReader。
2  インポートにjava.io.IOException。
3  インポートjava.io.InputStreamReader。
4  インポートjava.util.ArrayListの。
5つの パブリック クラスメイン{
 6      パブリック 静的 ボイドメイン(文字列[]引数)がスローにIOException {
 7          BufferedReaderの入力= 新しい BufferedReaderの(新たにInputStreamReader(System.in))を、
8  //         整数N = Integer.parseInt(input.readLine())。
9つの         ブール [] ARR = 新しい ブール[32768 ]。
10          のためにINT I 2 =; I <32768は、I ++ ){
 11              ARRは、[I] = 12          }
 13          
14          のためにintは iは2 = I ++; I <32768 ){
 15              であれば(ARR [I]){
 16                  のためのint型、J <32768; J + = J = 2 * I I){
 17                      ARR [J ] = ;
18                  }
 19              }
 20          }
 21  //         一方(N!= 0){
 22  //            ブール[] ARR =新しいブール[N + 1]。
23  //             ため(INT iは2 =、iが<= N; I ++){
 24  //                 ARR [I] = TRUE;
25  //             }
 26  //             
27  //             (INTがI = 2、I <= N; I ++)のために{
 28  //                 もし(ARR [I]){
 29  //                     のための(INT J = 2 * I; J < = N; jは+ = 1){
 30  //                         ARR [J] = FALSE;
31  //                     }
 32  //                 }
 33  //             } 
34         ArrayListの<整数>の整数= 新しいのArrayList <Integer型> ();
35          一方){
 36              INT N = Integer.parseInt(input.readLine())。
37              であれば(N == 0 ){
 38                  ブレーク39              }
 40              int型の和= 0 41              のためにINT I 2 =、iが<= N / 2; I ++ ){
 42                  であれば(ARR [I] && ARR [N- I]){
 43                      和++ 44                  }
 45              }
46              integers.add(合計)。
47  //             System.out.printlnは(合計)。
48  //             N = Integer.parseInt(input.readLine())。
49  //             ARR =新しいブール[N + 1]。
50          }
 51  のためにINTが I = 0、I <integers.size(); I ++ ){
 52      のSystem.out.println(integers.get(I))。
53      
54  }
 55      }
 56 }

ええと。私はタイムアウト無料の補足質問のように覚えて振り返っする時間がありませんでした。

おすすめ

転載: www.cnblogs.com/Flyfishy/p/12163884.html
おすすめ