Longest Collatz sequence
Longest Collatz sequence
by Ajit_Kumar_Panda
JavaScript
//Get Next term in Collatze Sequence
let getNextSeqTerm = (iCurrentNo)=>{return iCurrentNo % 2 == 0 ? (iCurrentNo / 2) : (3 * iCurrentNo) + 1 ;}
//Get no of terms in One Collatz Sequence
let getSeqTermsCnt = (iSeqStartNo)=>{
var iTermsCnt = 2;
do{
iSeqStartNo = getNextSeqTerm(iSeqStartNo);
}while(iSeqStartNo != 1 && ++iTermsCnt);
return iTermsCnt;
};
//Print Longest Chain Starting No and Chain length
let printMaxSequence = (iUpperLimitStart)=>{
let iMaxSeqStartNo = 0, iMaxSeqTermsCnt = 0;
let sOutput = 'Under ' + iUpperLimitStart + ', ';
do{
let iSeqTermsCnt = getSeqTermsCnt(iUpperLimitStart);
if(iSeqTermsCnt > iMaxSeqTermsCnt){
iMaxSeqStartNo = iUpperLimitStart;
iMaxSeqTermsCnt = iSeqTermsCnt;
}
}while(iUpperLimitStart-- !=1);
sOutput = sOutput + 'Collatz sequence starting at ' + iMaxSeqStartNo + ' produces longest chain of ' + iMaxSeqTermsCnt + ' Terms';
console.log(sOutput);
}
printMaxSequence(1000000);