Guest User

Untitled

a guest
Jul 21st, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.07 KB | None | 0 0
  1. import java.math.BigInteger;
  2. import java.util.ArrayList;
  3. import java.lang.StringBuilder;
  4. public class q8largestproductinaseries {
  5. static ArrayList<BigInteger> splitNumList = new ArrayList<BigInteger>();
  6. public static boolean splitNum(BigInteger n){
  7. int obj2 = n.compareTo(new BigInteger("0"));
  8. if(obj2 == 0){
  9. return true;
  10. }
  11. else
  12. splitNumList.add(n.mod(new BigInteger("10")));
  13. return splitNum(n.divide(BigInteger.valueOf(10)));
  14. }
  15. public static void main(String args[]) {
  16. long startTime = System.nanoTime();
  17.  
  18. System.out.println("hello world");
  19. String legitNum = "73167176531330624919225119674426574742355349194934" +
  20. "96983520312774506326239578318016984801869478851843" +
  21. "85861560789112949495459501737958331952853208805511" +
  22. "12540698747158523863050715693290963295227443043557" +
  23. "66896648950445244523161731856403098711121722383113" +
  24. "62229893423380308135336276614282806444486645238749" +
  25. "30358907296290491560440772390713810515859307960866" +
  26. "70172427121883998797908792274921901699720888093776" +
  27. "65727333001053367881220235421809751254540594752243" +
  28. "52584907711670556013604839586446706324415722155397" +
  29. "53697817977846174064955149290862569321978468622482" +
  30. "83972241375657056057490261407972968652414535100474" +
  31. "82166370484403199890008895243450658541227588666881" +
  32. "16427171479924442928230863465674813919123162824586" +
  33. "17866458359124566529476545682848912883142607690042" +
  34. "24219022671055626321111109370544217506941658960408" +
  35. "07198403850962455444362981230987879927244284909188" +
  36. "84580156166097919133875499200524063689912560717606" +
  37. "05886116467109405077541002256983155200055935729725" +
  38. "71636269561882670428252483600823257530420752963450";
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. String sList[] = new String[1000];
  46. final int digitmult= 13;
  47. for(int i = 0; i < legitNum.length(); i++){
  48. sList[i] = legitNum.substring(i, i+1);
  49. }
  50. //System.out.println(sList);
  51. int count = 0;
  52.  
  53.  
  54.  
  55. System.out.println();
  56. for(int i = 0; i < 1000; i++){
  57. if(sList[i].equals("0")){
  58. //System.out.println(i);
  59. for(int c = i-digitmult; c <= i+digitmult; c++){
  60. if(c >= 0 && c<sList.length){
  61. sList[c] = "0";
  62. //System.out.println("hi");
  63.  
  64. }
  65.  
  66.  
  67.  
  68. }
  69. i+=13;
  70. }
  71. }
  72. StringBuilder s = new StringBuilder(1000);
  73. String slol = "";
  74. for(int i = 0; i< 1000; i++){
  75.  
  76. if(sList[i].equals("0")){
  77. count = 0;
  78. System.out.print(",");
  79. }
  80. else {
  81. if(sList[i-1].equals("0")){
  82. slol += "0";
  83. s.append(" ");
  84. }
  85. s.append(sList[i]);
  86. slol += sList[i];
  87. count++;
  88.  
  89.  
  90. System.out.print(sList[i]);
  91. }
  92.  
  93.  
  94. }
  95. System.out.println();
  96. System.out.println(s);
  97. System.out.println(slol);
  98. String [] parts = slol.split("0");
  99. BigInteger arr [] = new BigInteger[parts.length];
  100.  
  101. for(int i = 1; i< parts.length; i++){
  102. //System.out.println(parts[i] + " ");
  103. /* if(parts[i].equals("")){
  104. System.out.println("i: " + i );
  105. used this to figure out which index doesnt contain numerical values
  106. } */
  107.  
  108.  
  109. arr[i] = new BigInteger(parts[i]);
  110. System.out.println(arr[i]);
  111.  
  112.  
  113. }
  114.  
  115. System.out.println();
  116. BigInteger max = BigInteger.valueOf(0);
  117. int obj;
  118.  
  119. for(int i = 0; i< arr.length; i++){
  120. q8largestproductinaseries.splitNum(arr[i]);
  121. /* temp if(splitNumList.size() > 13){
  122. for(int j = 0; j < splitNumList.size()-13; j++){
  123. obj = max.compareTo(splitNumList.get(j).multiply(splitNumList.get(j+1)).multiply(splitNumList.get(j+2)).multiply(splitNumList.get(j+3)).multiply(splitNumList.get(j+4).multiply(splitNumList.get(j).multiply(splitNumList.get(j+5)).multiply(splitNumList.get(j+6)).multiply(splitNumList.get(j+7)).multiply(splitNumList.get(j+8))).multiply(splitNumList.get(j).multiply(splitNumList.get(j+9)).multiply(splitNumList.get(j+10)).multiply(splitNumList.get(j+11)).multiply(splitNumList.get(j+12)))));
  124. if( obj == -1){
  125. max = splitNumList.get(j).multiply(splitNumList.get(j+1)).multiply(splitNumList.get(j+2)).multiply(splitNumList.get(j+3)).multiply(splitNumList.get(j+4).multiply(splitNumList.get(j).multiply(splitNumList.get(j+5)).multiply(splitNumList.get(j+6)).multiply(splitNumList.get(j+7)).multiply(splitNumList.get(j+8))).multiply(splitNumList.get(j).multiply(splitNumList.get(j+9)).multiply(splitNumList.get(j+10)).multiply(splitNumList.get(j+11)).multiply(splitNumList.get(j+12))));
  126. }
  127. }
  128. }
  129.  
  130. splitNumList.clear(); */
  131. }
  132. System.out.println(max);
  133. // System.out.println(Integer.valueOf(parts[0]));
  134.  
  135. /* String firstGroup = "74426574742355349";
  136. //System.out.println(Long.parseLong(firstGroup));
  137. String secondGroup = "3244157221553975369";
  138. String thirdGroup = "25693219784686224828";
  139. String fourthGroup = "66881164271714";
  140. String fifthGroup = "1912316282458617866458359124566529476545682";
  141. System.out.println(firstGroup.length());
  142.  
  143. System.out.println(secondGroup.length());
  144. System.out.println(thirdGroup.length());
  145. System.out.println(fourthGroup.length());
  146. System.out.println(fifthGroup.length());
  147. // int first = Integer.valueOf(firstGroup);
  148. */
  149. long endTime = System.nanoTime();
  150. System.out.println("Took "+(endTime - startTime) + " ns");
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158. }
  159. }
Add Comment
Please, Sign In to add comment