กำหนดจำนวนตัวแปรจำนวนเต็มเป็นอินพุต เป้าหมายคือการคำนวณผลรวมของตัวเลขของตัวเลขที่ป้อนและตรวจสอบว่าผลรวมนั้นเป็นจำนวนเฉพาะหรือไม่ ทำเช่นนี้จนกว่าจำนวนที่ได้รับพร้อมผลรวมของหลักจะกลายเป็นตัวเลขหลักเดียว ตรวจสอบว่าตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่ หากตัวเลขที่ป้อนเป็น 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