# Online Prime Factorization

positive integer:

{{ primes }}

Online prime factorization tool. The algorithm comes from GeeksforGeeks [1] and implemented in JavaScript. The UI is implemented using Vue.js. The following is complete source code.

HTML:

```<div id="vueapp">
positive integer: <input v-model="intn" placeholder="Input positive integer">
<p>{{ primes }}</p>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
```

Given an input from user, we check if the input is an integer. Then we run the sieve algorithm to check if the number is prime.

JavaScript:

```'use strict';

// Get all prime factors of a given number n
function PrimeFactors(n) {
if (n==1) {return [1];}

var pfs = [];
// Get the number of 2s that divide n
while (n%2 == 0) {
pfs.push(2);
n /= 2;
}

// n must be odd at this point. so we can skip one element
// (note i = i + 2)
for (var i=3; i*i <= n; i += 2) {
// while i divides n, append i and divide n
while (n%i == 0) {
pfs.push(i);
n /= i;
}
}

// This condition is to handle the case when n is a prime number
// greater than 2
if ( n>2 ) {
pfs.push(n);
}

return pfs;
}

new Vue({
el: '#vueapp',
data: {
intn: 6,
primes: ""
},
watch: {
intn: {
immediate: true,
handler(val, oldVal) {
var n = parseInt(val);
if (isNaN(n) || n<1) {
this.primes = "please input positive integer";
return;
}

this.primes = PrimeFactors(n);
}
}
}
});
```

Tested on:

• Chromium 65.0.3325.181 on Ubuntu 17.10 (64-bit)
• Vue.js 2.5.16

References: