Advertisement
Guest User

Primes

a guest
Mar 22nd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 1.47 KB | None | 0 0
  1. <html>
  2.  
  3. <head>
  4.     <title>Primes</title>
  5. </head>
  6.  
  7. <script>
  8. window.onload = function(){
  9.     const form = document.body.querySelector('form');
  10.     const input = form.querySelector('input');
  11.     const submit = form.querySelector('input[type="submit"]');
  12.     const time = document.body.querySelector('#tempo > span');
  13.     const qnt = document.body.querySelector('#total > span');
  14.     const result = document.body.querySelector('#result > span');
  15.  
  16.     form.addEventListener('submit', function(event){
  17.         submit.setAttribute('disabled', 'disabled');
  18.         event.preventDefault();
  19.         result.innerText = '';
  20.  
  21.         const t0 = performance.now();
  22.  
  23.         const upTo = input.value;
  24.         if (!upTo || upTo <= 1){
  25.             submit.disabled = false;
  26.             return;
  27.         }
  28.  
  29.         var primes = [];
  30.  
  31.         for (let i=3; i <= upTo; i+=2){
  32.             let isPrime = true;
  33.             let root = Math.ceil(Math.sqrt(i))+1;
  34.             for (let j=0; j < primes.length && primes[j] < root; j++){
  35.                 if (i%primes[j] == 0){
  36.                     isPrime = false;
  37.                     break;
  38.                 }
  39.             }
  40.             isPrime && primes.push(i);
  41.         }
  42.         primes.unshift(2);
  43.         time.innerText = (performance.now() - t0) + " milliseconds.";
  44.         qnt.innerText = primes.length;
  45.         result.innerText = primes;
  46.         submit.disabled = false;
  47.     });
  48. }
  49. </script>
  50.  
  51. <body>
  52.  
  53. <form>
  54.     <input type="text" value="20000">
  55.     <input type="submit">
  56. </form>
  57.  
  58. <div id="tempo">Tempo: <span></span></div>
  59. <div id="total">Total: <span></span></div>
  60. <div id="result" style="word-wrap: break-word">Resultado: <span></span></div>
  61.  
  62. </body>
  63. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement