├── 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 | | Computation |
29 | Result |
30 |
31 |
32 |
33 | | Prime Factors |
34 | ..... |
35 |
36 |
37 | | Factorisation |
38 | ..... |
39 |
40 |
41 | | Factorisation In Exponent Form |
42 | ..... |
43 |
44 |
45 |
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 | }
--------------------------------------------------------------------------------