Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Prime Factors
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description try to take over the world!
- // @author You
- // @match https://duckduckgo.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function createElement(str) {
- var frag = document.createDocumentFragment();
- var elem = document.createElement('div');
- elem.innerHTML = str;
- while (elem.childNodes[0]) {
- frag.appendChild(elem.childNodes[0]);
- }
- return frag;
- }
- const searchInput = document.querySelector('#search_form_input');
- if (searchInput && searchInput.value.startsWith('prime factors of')) {
- const number = +searchInput.value.slice('prime factors of'.length);
- let n = number;
- const primes = {};
- for (let i = 2; i*i <= n; i++) {
- while (n % i == 0) {
- if (primes[i] === undefined) { primes[i] = 0; }
- primes[i] += 1;
- n /= i;
- }
- }
- if (n >= 0) {
- if (primes[n] === undefined) { primes[n] = 0; }
- primes[n] += 1;
- }
- const headerWrapper = document.querySelector('#header_wrapper');
- const el = createElement(`
- <div id="zero_click_wrapper" class="zci-wrap">
- <div class="zci zci--factors is-active" id="zci-factors">
- <div class="cw ">
- <div class="zci__main c-base">
- <div class="zci__body">
- <h3 class="c-base__title">${Object.entries(primes).map(([p, times]) => `${p}${times !== 1 ? `<sup>${times}</sup>` : ""}`).join(' × ')}</h3>
- <h4 class="c-base__sub">Prime Factors of: ${number}</h4>
- <div class="c-base__links"></div>
- </div>
- </div>
- </div>
- </div>
- </div>`)
- headerWrapper.parentNode.insertBefore(el, headerWrapper.nextSibling);
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement