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

ตัวประกอบสูงสุดที่เกิดจากตัวเลขสองตัวใน Python


เราได้รับอาร์เรย์ขององค์ประกอบประเภทจำนวนเต็มและภารกิจคือการหาปัจจัยสูงสุดที่เกิดจากการคูณตัวเลขสองตัว นั่นคือ อันดับแรก เราจะคูณตัวเลขที่อยู่ในผลคูณที่คำนวณเหมือนอาร์เรย์ ประการที่สอง เราจะคำนวณปัจจัยของตัวเลขเหล่านั้นและตรวจสอบหา ปัจจัยสูงสุดในบรรดาทั้งหมด.

อินพุต

int arr[] = {3, 2, 10}

ผลลัพธ์

Maximum factors formed by two numbers are: 8

คำอธิบาย

  • คำนวณผลคูณภายในเช่น 3 * 2 =6, 3 * 10 =30, 2 * 10 =20

  • ตอนนี้คำนวณปัจจัยสำหรับ 6 -> 1, 2, 3, 6; 30 -> 1, 2, 3, 5, 6, 10, 15, 30; 20 -> 1, 2, 4,5, 10, 20.

  • ตรวจสอบจำนวนที่มีจำนวนตัวประกอบสูงสุดคือ 6 มีตัวประกอบทั้งหมด 4 ตัว 20 มีทั้งหมด 6 ตัวและ 30 มีตัวประกอบ 8 ตัว ดังนั้นตัวประกอบสูงสุดที่เกิดจากตัวเลขสองตัวคือ 8.

อินพุต

int arr[] = {1, 4, 6}

ผลลัพธ์

Maximum factors formed by two numbers are: 8

คำอธิบาย

  • คำนวณผลคูณภายในเช่น 1 * 4 =4, 1 * 6 =6, 4 * 6 =24

  • ตอนนี้คำนวณปัจจัยสำหรับ 4 -> 1, 2, 4; 6 -> 1, 2, 3, 6; 24 -> 1, 2, 3, 4, 6, 8, 12, 24.

  • หาจำนวนที่มีจำนวนตัวประกอบสูงสุด คือ 4 มีตัวประกอบ 3 ตัว 6 มีตัวประกอบทั้งหมด 4 ตัว 24 มีตัวประกอบ 8 ตัว ดังนั้นตัวประกอบสูงสุดที่เกิดจากตัวเลขสองตัวคือ 8

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

  • ป้อนองค์ประกอบจำนวนเต็มในอาร์เรย์
  • ใช้ตัวแปรชั่วคราวหลายตัวและใหญ่เพื่อเก็บค่าสูงสุด
  • เริ่มลูป i ตั้งแต่ 0 จนถึงความยาวของอาร์เรย์
  • ภายในลูป เริ่มวน j ใหม่จาก 0 จนถึงความยาวของอาร์เรย์
  • ตรวจสอบว่า a[i] ไม่เท่ากับ a[j] ถ้าใช่ ให้ตั้งค่าตัวแปรหลายตัวด้วย a[i] * a[j] และตรวจสอบว่า big
  • ในฟังก์ชัน countFactor(หลาย)
    • ใช้ตัวแปรชั่วคราวเป็น int c =0
    • เริ่มการวนซ้ำจาก j ถึง 1 จนถึงหลายค่า
      • ตรวจสอบว่าหลาย % j =0
        • จากนั้นเพิ่มทีละ 1
    • คืนค
  • พิมพ์มูลค่ามหาศาล
  • ตัวอย่าง

    public class BiggestFactor{
       public static void main(String[] args){
          int a[]={3,2,10};
          int multiple=1;
          int big=1;
          for(int i=0;i<a.length-1;i++){
             for (int j = 0; j < a.length; j++){
                if(a[i]!=a[j]){
                   multiple=a[i]*a[j];
                   if(big<countFactor(multiple))
                      big=countFactor(multiple);
                }
             }
          }
          System.out.println(“Maximum factors formed by two numbers are: ” +big);
       }
       private static int countFactor(int i){
          int c=0;
          for (int j = 1; j<=i; j++){
             if(i%j==0){
                c++;
             }
          }
          return c;
       }
    }

    ผลลัพธ์

    Maximum factors formed by two numbers are: 8