<commit_before>// head = document.querySelector('head');

// number = document.createElement('script');
// number.src = 'https://rawgit.com/home-labs/do-rails/master/lib/assets/javascripts/do/helpers/number.js';

// head.appendChild(number);

// Para futuras implementações, como retorno de fatores primos de determinado valor, podemos usar um algorítmo determinístico como esses dois abaixo
// É interessante calcular somente os fatores primos que caberiam para determinado número, ao invés de testar com todo número natural até chegar a ele, e salvá-los em i como um array, e no if calcular o retorno 0 somente para estes. Devendo o próprio número ser retornado caso não haja quantidade de múltiplos maior que 1, pois 1 e ele mesmo não deverão entrar no vetor para ser calculado.
// Mas como calcular esse números primos? No braço?

// http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes
// http://pt.wikipedia.org/wiki/Teste_de_primalidade_AKS

Number.firstMultiple = function(n) {
  return n.firstMultiple();
}

Number.prototype.firstMultiple = function() {
  var
    i = 1,
    count = 1,
    n = this,
    m = n
  ;

  if (n < 0) { n *= -1; }

  while(i <= n && count < 3) {
    if(n%i === 0) {
      count++;<commit_msg>nome método para transformar valor decimal em fração<commit_after>// head = document.querySelector('head');

// number = document.createElement('script');
// number.src = 'https://rawgit.com/home-labs/do-rails/master/lib/assets/javascripts/do/helpers/number.js';

// head.appendChild(number);

// Para futuras implementações, como retorno de fatores primos de determinado valor, podemos usar um algorítmo determinístico como esses dois abaixo
// É interessante calcular somente os fatores primos que caberiam para determinado número, ao invés de testar com todo número natural até chegar a ele, e salvá-los em i como um array, e no if calcular o retorno 0 somente para estes. Devendo o próprio número ser retornado caso não haja quantidade de múltiplos maior que 1, pois 1 e ele mesmo não deverão entrar no vetor para ser calculado.
// Mas como calcular esse números primos? No braço?

// http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes
// http://pt.wikipedia.org/wiki/Teste_de_primalidade_AKS

Number.prototype.rationalize = function() {
  var
    number = this,
    decimal = (number.toString().split('.'))[1],
    denominator = '1',
    gcd = 1
  ;

  for(var i=0; i <= decimal.length -1; i++) {
    denominator += '0';
  }

  gcd = Math.gcd(decimal, denominator);

  return (decimal/gcd).toString() + '/' + (denominator/gcd).toString();

}

Number.firstMultiple = function(n) {
  return n.firstMultiple();
}

Number.prototype.firstMultiple = function() {
  var
    i = 1,
    count = 1,
    n = this,
    m = n
  ;

  if (n < 0) { n *= -1; }

  while(i <= n && count < 3) {
    if(n%i === 0) {
      count++;
{'fraction_non_alphanumeric': 0.12214812214812215, 'fraction_numerical': 0.009828009828009828, 'mean_word_length': 3.5310015898251192, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7238715', 'n_tokens_mistral': 999, 'n_tokens_neox': 969, 'n_words': 299}