2017年8月15日 星期二

UVA406:Prime Cuts

  1. import java.util.*;  
  2. class main{  
  3. static int[] prim;  
  4. public static void main(String[] args){  
  5. prim = new int[2000];  
  6. Scanner sc = new Scanner(System.in);  
  7. int n = 1 ;  
  8. prim[0] = 1;  
  9. for(int i = 2;i<prim.length;i++){  
  10. boolean P = false ;  
  11.   for(int j = 2 ; j < i ; j++)  
  12.      if(i%j==0) P=true;//No Prim  
  13.  if(!P) prim[n++] = i;   
  14. }  
  15. while(sc.hasNext())  
  16. Print(sc.nextInt() , sc.nextInt());  
  17. }  
  18.   
  19.   
  20.   
  21. static void Print(int N , int C){  
  22. System.out.print(N+" "+C+":");  
  23. int i = 0,count = 0;  
  24. try{  
  25. while(N>=prim[i])  
  26. i++;//size  
  27. if(i%2==0) C = 2*C ;   
  28. else  C = 2*C-1 ;   
  29. i = (i-C)/2;  //(擁有數量-需要數量=(剩餘數量) )/2 = 起始位置
  30. while(count<C){  
  31. System.out.print(" "+prim[i]);  
  32. count++;i++;  
  33. }  
  34. }catch(Exception ex){  
  35.   i = 0;  
  36.   while(N>=prim[i])  
  37.   System.out.print(" "+prim[i++]);  
  38. }  
  39. System.out.println("\r\n");  
  40. }  
  41. }  

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。