Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตัวเลขที่ปรับโครงสร้างได้ใน C++


เราได้รับค่าประเภทจำนวนเต็ม สมมุติว่าจำนวน ภารกิจคือตรวจสอบว่าตัวเลขที่กำหนดเป็น Refactorable หรือไม่ ถ้าใช่ ให้พิมพ์ว่าตัวเลขนั้นเป็นตัวเลขที่ปรับโครงสร้างได้ มิฉะนั้น จะไม่สามารถพิมพ์ได้

จำนวนที่ปรับโครงสร้างได้คืออะไร

ตัวเลขสามารถปรับโครงสร้างใหม่ได้เมื่อหารด้วยจำนวนปัจจัยที่มีอยู่ทั้งหมด ตัวอย่างเช่น หมายเลข 9 สามารถ refactorable เนื่องจากมีจำนวนตัวประกอบทั้งหมด เช่น 3(1, 3, 9) และ 9 หารด้วย 3 ลงตัว จึงเป็นตัวเลขที่ปรับโครงสร้างใหม่ได้

ให้เราดูสถานการณ์อินพุตเอาต์พุตที่หลากหลายสำหรับสิ่งนี้ -

ป้อนข้อมูล − จำนวนเต็ม =9

ผลผลิต − เป็นตัวเลขที่ปรับโครงสร้างได้

คำอธิบาย − จำนวนสามารถปรับโครงสร้างใหม่ได้เมื่อหารด้วยจำนวนปัจจัยที่มีอยู่ทั้งหมด เราได้รับหมายเลข 9 ซึ่งจัดองค์ประกอบใหม่ได้เนื่องจากมีจำนวนตัวประกอบทั้งหมด เช่น 3(1, 3, 9) และ 9 หารด้วย 3 ลงตัวจึงเป็นจำนวนที่ปรับโครงสร้างใหม่ได้

ป้อนข้อมูล − จำนวนเต็ม =10

ผลผลิต − ไม่ใช่ตัวเลขที่ปรับโครงสร้างได้

คำอธิบาย − จำนวนสามารถปรับโครงสร้างใหม่ได้เมื่อหารด้วยจำนวนปัจจัยที่มีอยู่ทั้งหมด เราได้ตัวเลข 10 ซึ่งไม่สามารถปรับโครงสร้างใหม่ได้ เนื่องจากมีจำนวนตัวประกอบทั้งหมด เช่น 4(1, 2, 5, 10) และ 10 ไม่หารด้วย 4 ลงตัว จึงไม่เป็นจำนวนที่ปรับโครงสร้างใหม่ได้

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ป้อนตัวแปรประเภทจำนวนเต็ม สมมุติว่า ตัวเลข

  • ส่งข้อมูลไปยังฟังก์ชัน check_Refactorable(int number) ของประเภทบูล

  • ภายในฟังก์ชัน check_Refactorable(int number)

    • ประกาศตัวแปรประเภทจำนวนเต็มนับเป็น 0

    • เริ่มวนรอบ FOR จาก i ถึง 1 จนถึง i น้อยกว่า sqrt(number) ภายในลูป ให้ตรวจสอบ IF number % i =0 จากนั้นตรวจสอบ IF number / i =i จากนั้นให้เพิ่มจำนวนขึ้นก่อน 1

    • มิฉะนั้น ตั้งค่าการนับเป็นจำนวน + 2

    • ส่งคืนจำนวน % นับ ==0

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
bool check_Refactorable(int number){
   int count = 0;
   for (int i = 1; i <= sqrt(number); ++i){
      if(number % i==0){
         if(number / i == i){
            ++count;
         }
         else{
            count += 2;
         }
      }
   }
   return number % count == 0;
}
int main(){
   int number = 9;
   if(check_Refactorable(number) == 1){
      cout<<"It is a Refactorable number";
   }
   else{
      cout<<"It isn't a Refactorable number";
   }
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

It is a Refactorable number