Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.math.BigInteger;
- import java.util.ArrayList;
- import java.lang.StringBuilder;
- public class q8largestproductinaseries {
- static ArrayList<BigInteger> splitNumList = new ArrayList<BigInteger>();
- public static boolean splitNum(BigInteger n){
- int obj2 = n.compareTo(new BigInteger("0"));
- if(obj2 == 0){
- return true;
- }
- else
- splitNumList.add(n.mod(new BigInteger("10")));
- return splitNum(n.divide(BigInteger.valueOf(10)));
- }
- public static void main(String args[]) {
- long startTime = System.nanoTime();
- System.out.println("hello world");
- String legitNum = "73167176531330624919225119674426574742355349194934" +
- "96983520312774506326239578318016984801869478851843" +
- "85861560789112949495459501737958331952853208805511" +
- "12540698747158523863050715693290963295227443043557" +
- "66896648950445244523161731856403098711121722383113" +
- "62229893423380308135336276614282806444486645238749" +
- "30358907296290491560440772390713810515859307960866" +
- "70172427121883998797908792274921901699720888093776" +
- "65727333001053367881220235421809751254540594752243" +
- "52584907711670556013604839586446706324415722155397" +
- "53697817977846174064955149290862569321978468622482" +
- "83972241375657056057490261407972968652414535100474" +
- "82166370484403199890008895243450658541227588666881" +
- "16427171479924442928230863465674813919123162824586" +
- "17866458359124566529476545682848912883142607690042" +
- "24219022671055626321111109370544217506941658960408" +
- "07198403850962455444362981230987879927244284909188" +
- "84580156166097919133875499200524063689912560717606" +
- "05886116467109405077541002256983155200055935729725" +
- "71636269561882670428252483600823257530420752963450";
- String sList[] = new String[1000];
- final int digitmult= 13;
- for(int i = 0; i < legitNum.length(); i++){
- sList[i] = legitNum.substring(i, i+1);
- }
- //System.out.println(sList);
- int count = 0;
- System.out.println();
- for(int i = 0; i < 1000; i++){
- if(sList[i].equals("0")){
- //System.out.println(i);
- for(int c = i-digitmult; c <= i+digitmult; c++){
- if(c >= 0 && c<sList.length){
- sList[c] = "0";
- //System.out.println("hi");
- }
- }
- i+=13;
- }
- }
- StringBuilder s = new StringBuilder(1000);
- String slol = "";
- for(int i = 0; i< 1000; i++){
- if(sList[i].equals("0")){
- count = 0;
- System.out.print(",");
- }
- else {
- if(sList[i-1].equals("0")){
- slol += "0";
- s.append(" ");
- }
- s.append(sList[i]);
- slol += sList[i];
- count++;
- System.out.print(sList[i]);
- }
- }
- System.out.println();
- System.out.println(s);
- System.out.println(slol);
- String [] parts = slol.split("0");
- BigInteger arr [] = new BigInteger[parts.length];
- for(int i = 1; i< parts.length; i++){
- //System.out.println(parts[i] + " ");
- /* if(parts[i].equals("")){
- System.out.println("i: " + i );
- used this to figure out which index doesnt contain numerical values
- } */
- arr[i] = new BigInteger(parts[i]);
- System.out.println(arr[i]);
- }
- System.out.println();
- BigInteger max = BigInteger.valueOf(0);
- int obj;
- for(int i = 0; i< arr.length; i++){
- q8largestproductinaseries.splitNum(arr[i]);
- /* temp if(splitNumList.size() > 13){
- for(int j = 0; j < splitNumList.size()-13; j++){
- 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)))));
- if( obj == -1){
- 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))));
- }
- }
- }
- splitNumList.clear(); */
- }
- System.out.println(max);
- // System.out.println(Integer.valueOf(parts[0]));
- /* String firstGroup = "74426574742355349";
- //System.out.println(Long.parseLong(firstGroup));
- String secondGroup = "3244157221553975369";
- String thirdGroup = "25693219784686224828";
- String fourthGroup = "66881164271714";
- String fifthGroup = "1912316282458617866458359124566529476545682";
- System.out.println(firstGroup.length());
- System.out.println(secondGroup.length());
- System.out.println(thirdGroup.length());
- System.out.println(fourthGroup.length());
- System.out.println(fifthGroup.length());
- // int first = Integer.valueOf(firstGroup);
- */
- long endTime = System.nanoTime();
- System.out.println("Took "+(endTime - startTime) + " ns");
- }
- }
Add Comment
Please, Sign In to add comment