JAVA: General program logic error
I wrote this program. It is supposed to find the lowest number that the three functions all have in common over 40755. So for example: t(285)=P(165)=H(143)=40755.

The issue is the program will not end, and I'm not sure why.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package frenchadvnumber;

import java.io.*;

/**
 *
 * @author Sam French
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int tn = 286; //x = tn
        int t = (tn * (tn + 1)) / 2;
        int pn = 166; //y
        int p = (pn * (3 * pn - 1)) / 2;
        int hn = 144; //z
        int h = (hn * (2 * hn - 1));
        boolean exit = false;

        while (exit == false) {
            if (p == t && t == h) {
                System.out.println("Debug: END");
                exit = true;
            }
            System.out.println("H: " + h + "P: " + p + "T: " + t);
            int minValue = Math.min(t, p);
            minValue = Math.min(minValue, h);
            System.out.println(minValue);
            if (minValue == t) {
                tn++;
                t = ((tn * (tn + 1)) / 2);
            }
            if (minValue == p) {
                pn++;
                p = ((pn * (3 * pn - 1)) / 2);
            }
            if (minValue == h) {
                hn++;
                h = (hn * ((2 * hn) - 1));
            }
        }
    }
    }
JAVA: General program logic error
===

I wrote this program. It is supposed to find the lowest number that the three functions all have in common over 40755. So for example: t(285)=P(165)=H(143)=40755.

The issue is the program will not end, and I'm not sure why.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package frenchadvnumber;

import java.io.*;

/**
 *
 * @author Sam French
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int tn = 286; //x = tn
        int t = (tn * (tn + 1)) / 2;
        int pn = 166; //y
        int p = (pn * (3 * pn - 1)) / 2;
        int hn = 144; //z
        int h = (hn * (2 * hn - 1));
        boolean exit = false;

        while (exit == false) {
            if (p == t && t == h) {
                System.out.println("Debug: END");
                exit = true;
            }
            System.out.println("H: " + h + "P: " + p + "T: " + t);
            int minValue = Math.min(t, p);
            minValue = Math.min(minValue, h);
            System.out.println(minValue);
            if (minValue == t) {
                tn++;
                t = ((tn * (tn + 1)) / 2);
            }
            if (minValue == p) {
                pn++;
                p = ((pn * (3 * pn - 1)) / 2);
            }
            if (minValue == h) {
                hn++;
                h = (hn * ((2 * hn) - 1));
            }
        }
    }
    }