Проблемы с Javascript для простых чисел

Это работает для меня весной 4.

@RequestMapping(value = "/image/{id}", method = RequestMethod.GET)
public void findImage(@PathVariable("id") String id, HttpServletResponse resp){

        final Foto anafoto = <find object>
        resp.reset();
        resp.setContentType(MediaType.IMAGE_JPEG_VALUE);
        resp.setContentLength(anafoto.getImage().length);

        final BufferedInputStream in = new BufferedInputStream(new ByteArrayInputStream(anafoto.getImageInBytes()));

        try {
            FileCopyUtils.copy(in, resp.getOutputStream());
            resp.flushBuffer();
        } catch (final IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

}
0
задан Naruto Abidal 28 February 2019 в 19:31
поделиться

2 ответа

простое число (число) должно быть вне тела функции p5Bela ():

function p5Bela() {
    var num = prompt("Please enter a number: ", "");
    for (i = 2; i <= num; i++) {
        if (prime(i)==true) {
            alert(i);
        }
    }
}
function prime(num) {
    var flag = true;
    var d = 2;
    while (flag==true && d <= num/2) {
        if (num%d == 0) {
            flag = false;
        }
        d++;
    }
    return flag;
}
0
ответ дан Kanow 28 February 2019 в 19:31
поделиться

Simplest Way

function isPrime(num) {
      for(var i = 2; i < num; i++)
        if(num % i === 0) return false;
      return num > 1;
    }

С помощью синтаксиса ES6:

const isPrime = num => {
  for(let i = 2; i < num; i++)
    if(num % i === 0) return false;
  return num > 1;
}

Вы также можете уменьшить сложность алгоритма из От O (n) до O (sqrt (n)), если вы запускаете цикл до получения квадратного корня из числа:

const isPrime = num => {
    for(let i = 2, s = Math.sqrt(num); i <= s; i++)
        if(num % i === 0) return false; 
    return num > 1;
}
0
ответ дан Shivam Arora 28 February 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: