Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Prime digits sum of a number in JavaScript
We are required to write a JavaScript function that takes in a number as the first and the only argument. The function should then sum all the digits of the number that are prime and return the sum as a number.
For example −
If the input number is −
const num = 67867852;
Then the output should be −
const output = 21;
because 7 + 7 + 5 + 2 = 21 −
Understanding Prime Digits
Prime digits are single-digit prime numbers: 2, 3, 5, and 7. The digits 0, 1, 4, 6, 8, and 9 are not prime numbers.
Using String Method
This approach converts the number to a string and checks each character:
const num = 67867852;
const sumPrimeDigits = (num) => {
const primes = '2357';
let sum = 0;
// Convert to string and iterate through each digit
const numStr = num.toString();
for (let digit of numStr) {
if (primes.includes(digit)) {
sum += parseInt(digit);
}
}
return sum;
};
console.log(sumPrimeDigits(num));
21
Using Mathematical Method
This approach extracts digits mathematically without string conversion:
const num = 67867852;
const sumPrimeDigits = (num) => {
const primes = '2357';
let sum = 0;
while (num) {
const digit = num % 10;
if (primes.includes('' + digit)) {
sum += digit;
}
num = Math.floor(num / 10);
}
return sum;
};
console.log(sumPrimeDigits(num));
21
Step-by-Step Breakdown
Let's trace through the number 67867852:
const num = 67867852;
const sumPrimeDigitsWithTrace = (num) => {
const primes = '2357';
let sum = 0;
let original = num;
console.log(`Processing number: ${original}`);
while (num) {
const digit = num % 10;
console.log(`Digit: ${digit}`);
if (primes.includes('' + digit)) {
sum += digit;
console.log(` Prime digit found! Sum = ${sum}`);
} else {
console.log(` Not a prime digit`);
}
num = Math.floor(num / 10);
}
return sum;
};
console.log(`Final sum: ${sumPrimeDigitsWithTrace(num)}`);
Processing number: 67867852 Digit: 2 Prime digit found! Sum = 2 Digit: 5 Prime digit found! Sum = 7 Digit: 8 Not a prime digit Digit: 7 Prime digit found! Sum = 14 Digit: 6 Not a prime digit Digit: 8 Not a prime digit Digit: 7 Prime digit found! Sum = 21 Digit: 6 Not a prime digit Final sum: 21
Comparison
| Method | Readability | Performance | Memory Usage |
|---|---|---|---|
| String Method | High | Good | Higher (string creation) |
| Mathematical Method | Medium | Better | Lower |
Conclusion
Both methods effectively sum prime digits in a number. The mathematical approach is more memory-efficient, while the string method is more readable and easier to understand.
