Need to run this program in less than a minute: hailstone sequence

Question Description

I’m stuck on a Programming question and need an explanation.

I'm trying to make my code run in less than a minute. 

The problem:

n is an element of 1 to 100,000,000 inclusive. print the number and the largest value reached in the hailstone sequence for n only if that largest value exceeds n^2

the 1st 4 lines of OP are
3 16
7 52
27 9232
31 9232

hailstone sequence: if the 1st # is odd, the following # is 3n+1
if it is even, the following # is n\2
the sequence stops at 1

my code which runs in about 3 minutes:

import java.util.*;

public class Mainn


public static void main(String[] args)

int count = 0; 

int number = 2; 

ArrayList <Integer> a = new ArrayList();

while(count < 1000000)


int c=0; 

for(int i = 2; i <= Math.sqrt(number) ; i++)

if (number%i == 0)









}//end of while 


long startTime = System.currentTimeMillis();

        long total = 0;

        for (int i = 0; i < 1000000; i++)


            total += i;


        long endTime = System.currentTimeMillis();

        System.out.println("Runtime = " + (endTime-startTime) + " milliseconds");

} //end of main 


Student has agreed that all tutoring, explanations, and answers provided by the tutor will be used to help in the learning process and in accordance with Studypool's honor code & terms of service.

This question has not been answered.

Create a free account to get help with this and any other question!