JSFiddle - React, Tailwind, and code Playground

by Andrew Poes

HTML

<!-- Euler Problem 3
The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143 ? -->

CSS

.print {
    position: relative;
    display: inline-block;
    background-color: black;
    color: white;
    font-family: Helvetica, Helvetica-Neue, sans-serif;
    font-weight: bold;
    font-size: 24px;
    letter-spacing: -1.5px;
    padding: 4px 8px;
}

body {
    background-color: #eeeeee;
}
}

JavaScript

$(document).ready(function() {

    var target = 600851475143
    var running = target
    var primes = []
    var done = false
    var success = false;
    var i = 0;
    var ittermax = 9000000;
    while (!done) {
        ++i;
        if (isPrime(i)) {
            if ((running/i)%1 == 0) {
                running = running / i;
                primes.push(i);
                print(str(i), str(running))
                if (running == 1) {
                    done = true;
                    break
                }
            }
        }
        if (i == ittermax) {
            i = 0;
        }
    }
	var largest = 0;
    for (var i = 0; i < primes.length; ++i) {
        if (largest < primes[i]) {
            largest = primes[i];
        }
    }
	print("largest = " + largest);
})

function isPrime(num) {
    if (num < 2) {
        return false
    }
    // Prime numbers other than two are odd...
    if (num == 2) {
        return true
    }
    else if (num%2 == 0) {
        return false
    }
    // Check it isn't divisible by up to its square root
    // (consider n=(root n)(root n) as factors)
    for (var i = 3; i <= Math.sqrt(num); ++i) {
        if (num%i == 0) {
            return false
        }
    }
	return true
}

function str(num) {
    return num.toString()
}

function print() {
    var args = Array.prototype.slice.apply(arguments)
    var str = ""
    for (arg of args) {
        str += arg + ", "
    }
    str = str.substring(0, str.length - 2)
    var el = newel(str)
    $("body").append(el)
    $("body").append("</br>")
}

function newel(str) {
    var el = document.createElement("div")
    $(el).html(str)
    $(el).addClass("print")
    return el
}