Wednesday, October 15, 2014

Highly divisible triangular number

Ques:
The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
Let us list the factors of the first seven triangle numbers:
 1: 1
 3: 1,3
 6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28
We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?


Ans:

package highlydivisible;

public class HighlyDivisible {
 

    public static void main(String[] args) {
          int nthtriplet = 9;
        int tripdes = 500;
        int cnt = 0;
        int gettriplet = 0;
        boolean val=false;
        int[] obtaindivisor=new int[nthtriplet-1];
        int matchpos=0;
   
        for (int i = 2; i < 200000; i++) {
           
            gettriplet = findtriplet(i);
            obtaindivisor=getdivisor(gettriplet, i);
            for(int j:obtaindivisor){
                if(j!=0){
                    cnt++;
                }
                if(cnt==tripdes){
                    val=true;
                    matchpos=i;
                    break;
                }
            }

            if(val){
                System.out.println("the position is "+matchpos+" & triplet is "+findtriplet(i));
                break;
            }
            cnt=0;
        }
    }

    public static int findtriplet(int num) {
        int sump = 0;
        for (int i = 1; i <= num; i++) {
            sump += i;
        }
        return sump;
    }

    public static int[] getdivisor(int sumoftriplets, int uptonum) {
        int[] getd = new int[uptonum+2];
        int j = 0;
        for (int i = 1; i <= sumoftriplets; i++) {
              if (sumoftriplets % i == 0) {
                getd[j] = i;
                j++;     
            }
        }
        return getd;
    }
}

No comments:

Post a Comment