Challenge

HTML

<!DOCTYPE html>
<title>SAPUI5</title>
<script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.m" data-sap-ui-bindingSyntax="complex" data-sap-ui-compatVersion="edge" data-sap-ui-preload="async"></script>

<script id="myView" type="ui5/xmlview">
  <mvc:View controllerName="MyController" xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc"
  xmlns:layout="sap.ui.commons.layout">

	<VBox>
  <Button text="Calculate" press="onCalculatePress" class="sapUiLargeMarginBegin"/>
  <Text id="solutiontext" class="sapUiSmallMarginBegin"/>
  </VBox>
  </mvc:View>
</script>

<body class="sapUiBody">
  <div id="content"></div>
</body>

JavaScript

sap.ui.getCore().attachInit(function() {
   "use strict";
   sap.ui.controller("MyController", {
   		_Chain: [],
      _MaxChain: [],
     onInit: function() {

     },

     onCalculatePress: function() {
     	sap.ui.core.BusyIndicator.show();
      this._Chain = [];
			this._MaxChain = [];
			for (let i = 1; i < 1000000; i++) {
      	
				this.calculateChain(i);
				if (this._Chain.length > this._MaxChain.length) {
					this._MaxChain = this._Chain;
				}
				this._Chain = [];
			}
			sap.ui.core.BusyIndicator.hide();
      var sResult = "The sequence start with: " + this._MaxChain[0] + 
      							"\n Size: " + this._MaxChain.length;
			this.getView().byId("solutiontext").setText(sResult)
			
			//}
		},
		
		calculateChain: function(iStartNumber) {
			this.generateChain(iStartNumber);
		},
		
		generateChain: function(iNextNumber) {
			this._Chain.push(iNextNumber);
			
			if (iNextNumber === 1) {
				return;
			}
			
			this.generateChain(this.getNumber(iNextNumber));
			
		},
		
		getNumber: function(iNumber) {
			if (this.isEven(iNumber)) {
				return iNumber / 2;
			}
			return (iNumber * 3) + 1;
			
		},
		
		isEven: function(n) {
			return n % 2 === 0;
		},

   });
   sap.ui.xmlview({
     viewContent: jQuery("#myView").html()
   }).placeAt("content");

 });