Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tổng chữ số và tìm số nguyên tố gần nhất trong JavaScript

Mô tả bài toán

Viết hàm tính tổng các chữ số của một số, sau đó tìm số nguyên tố nhỏ nhất lớn hơn hoặc bằng tổng đó.

Ví dụ minh họa

const num = 56563;

const digitSum = (num, sum = 0) => {
  if (num) {
    return digitSum(Math.floor(num / 10), sum + (num % 10));
  }
  return sum;
};

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

const nearestPrime = num => {
  let sum = digitSum(num);
  while (!isPrime(sum)) sum++;
  return sum;
};

console.log(nearestPrime(num));

Kết quả

29

Tối ưu hóa kiểm tra số nguyên tố

Chỉ cần kiểm tra đến √n:

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

Ứng dụng

Kết hợp xử lý số học và lý thuyết số, thường gặp trong thuật toán mã hóa/băm.