├── README.md ├── style.css ├── index.html └── script.js /README.md: -------------------------------------------------------------------------------- 1 | # Prime-Factor-Calculator 2 | Find Out The Prime Factors Of Any Number... 3 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | * { 2 | padding: 10px; 3 | box-sizing: border-box; 4 | } 5 | 6 | .bolder { 7 | font-weight: bolder; 8 | } 9 | 10 | td { 11 | font-size: larger; 12 | font-weight: bold; 13 | } 14 | 15 | body { 16 | background-color: rgb(187, 187, 187); 17 | } 18 | 19 | .fg { 20 | color: white; 21 | } 22 | 23 | .red { 24 | color: #f7484e; 25 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Prime Factor Calculator 14 | 15 | 16 | 17 |
18 | 19 |

Prime Factor Calculator

20 |
21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
ComputationResult
Prime Factors.....
Factorisation.....
Factorisation In Exponent Form.....
46 | 47 | 48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | // pre-computation of Sieve of Eratosthenes 2 | function seieve() { 3 | let arr = []; 4 | let output = []; 5 | 6 | //setting max value 7 | const MAX = 1e7; 8 | 9 | const upperLimit = Math.sqrt(MAX); 10 | 11 | for (let i = 2; i < MAX; i++) { 12 | arr.push(1); 13 | } 14 | 15 | for (let i = 2; i <= upperLimit; i++) { 16 | if (arr[i]) { 17 | for (let j = i * i; j < MAX; j += i) { 18 | arr[j] = 0; 19 | } 20 | } 21 | } 22 | 23 | for (let i = 2; i < MAX; i++) { 24 | if (arr[i]) { 25 | output.push(i) 26 | } 27 | } 28 | return output; 29 | } 30 | 31 | // storing primes in array 32 | let primeArray = seieve(); 33 | 34 | // begin calculation of prime factors of the supplied number 35 | function calculate(number) { 36 | let factors = []; 37 | let factorization = []; 38 | let factorExponent = {}; 39 | for (let i = 0; i < primeArray.length; i++) { 40 | if (primeArray[i] > number) { 41 | break; 42 | } 43 | else { 44 | if (number % primeArray[i] == 0) { 45 | factors.push(primeArray[i]); 46 | while (number % primeArray[i] == 0) { 47 | factorization.push(primeArray[i]); 48 | number /= primeArray[i]; 49 | } 50 | } 51 | } 52 | } 53 | factors.forEach((i) => factorExponent[i] = 0); 54 | factorization.forEach((i) => factorExponent[i]++); 55 | 56 | // adding update values to table 57 | let factorCell = document.getElementById("edit").rows[1].cells[1]; 58 | factorCell.innerHTML = factors; 59 | 60 | let factorizationCell = document.getElementById("edit").rows[2].cells[1]; 61 | factorizationCell.innerHTML = display(factorization); 62 | 63 | let exponetCell = document.getElementById("edit").rows[3].cells[1]; 64 | exponetCell.innerHTML = display2(factorExponent); 65 | 66 | } 67 | 68 | 69 | 70 | // onclick of button {find out factor} 71 | let num = () => { 72 | let inputNum = document.getElementById("input").value; 73 | if (inputNum <= 0) { 74 | alert("Please Enter A Positive Integer To Get Started"); 75 | } 76 | else if (inputNum == 1) { 77 | alert("1 Is Neither Prime Nor Composite . It's A Unique Number.") 78 | } 79 | else { 80 | calculate(inputNum) 81 | } 82 | } 83 | 84 | // onclick of button {reset} 85 | let reset = () => { 86 | document.getElementById("edit").rows[1].cells[1].innerHTML = " "; 87 | document.getElementById("edit").rows[2].cells[1].innerHTML = " "; 88 | document.getElementById("edit").rows[3].cells[1].innerHTML = " "; 89 | 90 | document.getElementById("input").value = ""; 91 | } 92 | 93 | 94 | 95 | // text manipulation functions to display on webpage 96 | function display(factorization) { 97 | let str = ""; 98 | for (let i = 0; i < factorization.length; i++) { 99 | if (i == factorization.length - 1) { 100 | str += factorization[i].toString(); 101 | break; 102 | } 103 | else { 104 | str += factorization[i].toString() + " * "; 105 | } 106 | 107 | } 108 | return str; 109 | 110 | } 111 | function display2(factorExponent) { 112 | let expArray = Object.keys(factorExponent); 113 | let valArray = Object.values(factorExponent) 114 | let str = ""; 115 | for (let i = 0; i < expArray.length; i++) { 116 | str += expArray[i] + "" + valArray[i] + ""; 117 | if (i != expArray.length - 1) { 118 | str += "* " 119 | } 120 | } 121 | return str; 122 | } --------------------------------------------------------------------------------