กำหนดตัวแปรจำนวนเต็ม number เป็นอินพุต เป้าหมายคือคำนวณผลรวมของหลักเลขของตัวเลขอินพุต และตรวจสอบว่าผลรวมนั้นเป็นจำนวนเฉพาะ (Prime) หรือไม่ ทำซ้ำจนกว่าตัวเลขที่ได้จากผลรวมหลักเลขจะกลายเป็นตัวเลขหลักเดียว (Single Digit) ตรวจสอบว่าตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่ หากตัวเลขอินพุตคือ 123 ผลรวมหลักเลขจะเป็น 1+2+3=6 ซึ่งไม่ใช่จำนวนเฉพาะ และ 6 เป็นตัวเลขหลักเดียว
ดูสถานการณ์ Input-Output ต่างๆ
Input - number = 12341
Output - Recursive sum of digits of a number is PRIME
คำอธิบาย -
1+2+3+4+1 = 11
1+1 = 2
2 เป็นจำนวนเฉพาะ
Input - number = 1664
Output - Recursive sum of digits of a number is NOT PRIME
คำอธิบาย -
1+6+6+4 = 17
1+7 = 8
8 เป็นจำนวนที่ไม่ใช่เฉพาะ
วิธีการที่ใช้ในโปรแกรมด้านล่าง
ประกาศตัวแปรจำนวนเต็มเป็น number
ส่งข้อมูลไปยังฟังก์ชัน Recursively_Prime(number)
ภายในฟังก์ชัน Recursively_Prime(number)
ตั้งค่า number เป็นการเรียกฟังก์ชัน sum(number)
ตรวจสอบ IF number เป็น 2 หรือ 3 หรือ 5 หรือ 7 แล้วพิมพ์ PRIME
ELSE พิมพ์ NOT PRIME
ภายในฟังก์ชัน sum(int number)
ตรวจสอบ IF number เป็น 0 แล้วคืนค่า 0
ELSE IF number % 9 เท่ากับ 0 แล้วคืนค่า 9
ELSE คืนค่า number % 9
พิมพ์ผลลัพธ์
ตัวอย่างโค้ด
#include<iostream>
using namespace std;
int sum(int number) {
if(number == 0) {
return 0;
} else {
if(number % 9 == 0) {
return 9;
} else {
return number % 9;
}
}
}
void Recursively_Prime(int number) {
number = sum(number);
cout<<"Recursive sum of digits of a number is ";
if(number == 2 || number == 3 || number == 5 || number == 7) {
cout << "PRIME";
} else {
cout << "NOT PRIME";
}
}
int main() {
int number = 5555;
Recursively_Prime(number);
}
ผลลัพธ์
หากเรารันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:
Recursive sum of digits of a number is PRIME