Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - index.html
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- <script src="script.js"></script>
- </head>
- <body>
- <div>
- <p>
- Від:
- <input type="number" value="1" min="1" id="min" />
- До:
- <input type="number" value="100" min='2' id="max" />
- </p>
- <p>
- <button id="searchButton" onclick="searchNums()">Search</button>
- </p>
- <div>
- <div id="status"></div>
- <div id="result"></div>
- </div>
- </div>
- </body>
- </html>
- - script.js
- function searchNums() {
- let statusDisplay = document.getElementById("status");
- let searchButton = document.getElementById("searchButton");
- searchButton.disabled = true;
- let min = document.getElementById('min').value;
- let max = document.getElementById('max').value;
- let worker = new Worker("NumWorker.js");
- statusDisplay.innerHTML = 'Searching...';
- worker.onmessage = receivedWorkerMessage;
- worker.postMessage(
- { from: min,
- to: max
- }
- );
- }
- - NumWorker.js
- function findNums(min, max) {
- let list = [];
- for (let i=min; i<=max; i++) {
- if (i>1) list.push(i);
- }
- let maxDiv = Math.round(Math.sqrt(max));
- let nums = [];
- for (let i=0; i<list.length; i++) {
- let failed = false;
- for (let j=2; j<=maxDiv; j++) {
- if ((list[i] != j) && (list[i] % j == 0)) {
- failed = true;
- } else if ((j==maxDiv) && (failed == false)) {
- nums.push(list[i]);
- }
- }
- }
- return nums;
- }
- onmessage = function(event) {
- let nums = findNums(event.data.from, event.data.to);
- postMessage(nums);
- };
- function receivedWorkerMessage(event) {
- let primes = event.data;
- let primeList = "";
- for (let i=0; i<primes.length; i++) {
- primeList += primes[i];
- if (i !== primes.length-1) primeList += ", ";
- }
- let primeContainer = document.getElementById("result");
- primeContainer.innerHTML = primeList;
- let statusDisplay = document.getElementById("status");
- let searchButton = document.getElementById("searchButton");
- if (primeList.length == 0) {
- statusDisplay.innerHTML = "Error!";
- }
- else {
- statusDisplay.innerHTML = "Done!";
- }
- searchButton.disabled = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment