0

このプログラムの目的は、1 からすべての素数をリストすることです。私は完全な初心者です。私はこれを C++ で書き始め (失敗)、これに変換しました (JS) いくつかの問題を認識していますが、それらを解決する方法がわかりません: グローバル変数の処理、置換の書き込み、書き込み前のタイムアウトなしなど。外部 JS ファイルを使用しますか? 要約すると、どうすればこれを機能させることができますか?

<!doctype html>
<html>
<head>
<script>

var number = 3; //to be run through the prime test
var prime = [2]; //numbers found to be prime
var found = 1; //counter for primes found
var runs = 0; //counter for times number has been tested
//numbers are tested against all smaller found primes
function test()
{
    window.scroll(0,document.height); //automatically view the latest prime
    var line = document.createElement("div");
    while(runs < found && (prime[runs] < (number / 2))) //has number passed all tests
    {
        if(number % prime[runs] !== 0) //is number divisible by smaller prime
        {
            runs = runs + 1; //number passed a test
        }
        else //number is not prime
        {
            number = number + 1; //next number generated
            runs = 0; //reset test counter for next number
            setTimeout(test, 100); //start running next number tests
        }
    } //number passed all tests
line.innerHTML = number; //prime number displayed
document.body.appendChild(line);
prime[found] = number; //prime number saved for testing
found = found + 1; //counter for found is increased
number = number + 1; //next number generated
runs = 0; //reset test counter for next number
setTimeout(test, 100); //start running next number tests
}

</script>
</head>
<body>
<form>
    <input type="button" onclick="test()">
</form>
</body>
</html>
4

2 に答える 2