เราได้รับอาร์เรย์ขององค์ประกอบประเภทจำนวนเต็มและภารกิจคือการหาปัจจัยสูงสุดที่เกิดจากการคูณตัวเลขสองตัว นั่นคือ อันดับแรก เราจะคูณตัวเลขที่อยู่ในผลคูณที่คำนวณเหมือนอาร์เรย์ ประการที่สอง เราจะคำนวณปัจจัยของตัวเลขเหล่านั้นและตรวจสอบหา ปัจจัยสูงสุดในบรรดาทั้งหมด.
อินพุต
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
- ตรวจสอบว่าหลาย % j =0
- คืนค
- ในฟังก์ชัน countFactor(หลาย)
ตัวอย่าง
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