poj 2739 java

这是今天做 自己把想法规划了一下 然后做的时间还是花费了两个小时  不够熟练  在一些小地方要注意让sum重新归零

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 import java.util.Scanner;
 4 import java.io.*;
 5 
 6 public class Main {
 7 
 8     public static void main(String args[]) {
 9 
10         Scanner cin = new Scanner(new BufferedInputStream(System.in));
11         List<Integer> prime = new ArrayList<Integer>();
12         int k=0,Sum=0,num;
13         for(int i=2;i<10000;i++){
14             if(IsPrime(i)){
15                 prime.add(i);
16             }                
17         }
18         
19       while (hasNext((num=cin.nextInt()))) {
20         
21           if(IsPrime(num)){
22               k=1;
23           }
24           
25           for(int i=0;i<num;i++){
26               
27               int q =i;
28               
29               int limit = prime.get(i)+prime.get(i+1);
30               if(limit>num)
31                   break;
32               
33               
34               while(true){
35                   
36                 Sum=Sum+prime.get(i);
37                 i++;
38                   
39                   if(Sum==num){
40                       k++;
41                       Sum=0;
42                       break;    
43                   }
44                   
45                   if(Sum>num){
46                       Sum=0;
47                       break;
48                   }
49                   
50               }
51                             
52               i=q;
53                         
54         }
55           
56           System.out.println(k);
57           k=0;
58     }
59         
60         
61         
62     }
63     
64     public static boolean hasNext(int num){
65         if(num==0){
66             return false;
67         }
68         
69         return true;
70         
71     }
72 
73     public static boolean IsPrime(int num) {
74         for (int i = 2; i <= Math.sqrt(num); i++) {
75             if (num % i == 0)
76                 return false;
77         }
78         return true;
79     }
View Code
原文地址:https://www.cnblogs.com/sasaxu/p/3247906.html