กำหนดจำนวนตัวแปรจำนวนเต็มเป็นอินพุต เป้าหมายคือการคำนวณผลรวมของตัวเลขของตัวเลขที่ป้อนและตรวจสอบว่าผลรวมนั้นเป็นจำนวนเฉพาะหรือไม่ ทำเช่นนี้จนกว่าจำนวนที่ได้รับพร้อมผลรวมของหลักจะกลายเป็นตัวเลขหลักเดียว ตรวจสอบว่าตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่ หากตัวเลขที่ป้อนเป็น 123 มากกว่าผลรวมของหลักจะเป็น 1+2+3=6 ซึ่งไม่ใช่จำนวนเฉพาะ และ 6 ก็เป็นตัวเลขหลักเดียวด้วย
ให้เราดูสถานการณ์อินพุตเอาต์พุตต่างๆ สำหรับสิ่งนี้
ป้อนข้อมูล − หมายเลข=12341
ผลผลิต − ผลรวมของตัวเลขแบบเรียกซ้ำคือ PRIME
คำอธิบาย −
1+2+3+4+1=11
1+1=2
2 เป็นจำนวนเฉพาะ
ป้อนข้อมูล − หมายเลข=1664
ผลผลิต − ผลรวมของตัวเลขแบบเรียกซ้ำไม่ใช่จำนวนเฉพาะ
คำอธิบาย −
1+6+6+4=17
1+7=8
8 เป็นตัวเลขที่ไม่ใช่จำนวนเฉพาะ
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ประกาศตัวแปรจำนวนเต็มเป็นตัวเลข
-
ส่งข้อมูลไปยังฟังก์ชัน Recursively_Prime(number)
-
ภายในฟังก์ชัน Recursively_Prime(number)
-
กำหนดจำนวนการโทรเข้าฟังก์ชันเป็น sum(number)
-
ตรวจสอบว่าหมายเลขเป็น 3 หรือหมายเลขเป็น 3 หรือหมายเลขคือ 5 หรือหมายเลขเป็น 7 จากนั้นพิมพ์ PRIME
-
มิฉะนั้น พิมพ์ NOT PRIME
-
-
ภายในฟังก์ชัน sum(int number)
-
ตรวจสอบว่าหมายเลขเป็น 0 แล้วส่งคืน 0
-
ELSE ถ้าตัวเลข % 9 เป็น 0) ให้คืนค่า 9
-
มิฉะนั้น หมายเลข % 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