Tabela dinâmica com dados vindo de uma input - js

Oii gente, tudo bem?
Criei uma função que imprime os números primos, de acordo com o valor inserido pelo usuário no input.
Estou com uma dificuldade de acessar esse número para que a função funcione e retorne uma array e imrprir essa array numa tabela dinâmica. Estou iniciando ainda os estudo, alguém consegue me dar uma ajuda?

Segue o código:

<div class="card border-info container my-4 p-5 col-sm-4">
        <form class="text-center p-5" action="#!">
            <p class="h4 mb-4">Projeto - Números Primos</p>
                <div class="col">
                    <input type="text" id="numerocalculo" class="form-control" name="numerocalculo" placeholder="Insira um número aqui" onblur="desafioPrimos(this);">
                    <input class="btn btn-outline-primary waves-effect btn-sm my-4 btn-block" type="button" value="Enviar" onclick="geradorTabela()">
                </div>
    <div class="card border-info mb-3 container p-5 text-center col-sm-4" id="divTabela"></div>

    <script type="text/javascript">
        /* FUNÇÃO NÚMEROS PRIMOS */

            var numero = document.getElementById('numerocalculo').value;
            var primos = [];

        function desafioPrimos() {
            numero = parseInt(numero);
            numerosPrimos:
                for (var x = 2; x <= numero; x++) {
                    for (var y = 2; y < x; y++) {
                        if (x % y === 0)
                        continue numerosPrimos;
                    };
                primos.push(x);
                };
            };                              


        /* FUNÇÃO GERADOR DE TABELA */
        function geradorTabela() {
            
            var primos = new Array();
            primos.push([desafioPrimos()]);


            var table = document.createElement("TABLE");
            table.border = "0";
            var columnCount = primos[0].length;

            var row = table.insertRow(-1);
            for (var i = 0; i < columnCount; i++) {
                var headerCell = document.createElement("TH");
                headerCell.innerHTML = primos[0][i];
                row.appendChild(headerCell);
            }

            //Dados.
            for (var i = 1; i < primos.length; i++) {
                row = table.insertRow(-1);
                for (var j = 0; j < columnCount; j++) {
                    var cell = row.insertCell(-1);
                    cell.innerHTML = primos[i][j];
                }
            }

            var divTabela = document.getElementById("divTabela");
            divTabela.innerHTML = "";
            divTabela.appendChild(table);
        }
    </script>

o que esta dando errado? a unica coisa estranha que eu vi foi

var columnCount = primos[0].length;

isso ai eh para ser primos.length