Find the largest palindrome made from the product of two 3-digit numbers

前端 未结 17 1179
天涯浪人
天涯浪人 2021-02-02 04:27
package testing.project;

public class PalindromeThreeDigits {

    public static void main(String[] args) {
        int value = 0;
        for(int i = 100;i <=999;i+         


        
17条回答
  •  自闭症患者
    2021-02-02 05:12

    What I would do:

    1. Start at 999, working my way backwards to 998, 997, etc
    2. Create the palindrome for my current number.
    3. Determine the prime factorization of this number (not all that expensive if you have a pre-generated list of primes.
    4. Work through this prime factorization list to determine if I can use a combination of the factors to make 2 3 digit numbers.

    Some code:

    int[] primes = new int[] {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,
    73,79,83,89,97,101,103,107,109,113,,127,131,137,139,149,151,157,163,167,173,
    179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,
    283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,
    419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,
    547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,
    661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,
    811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,
    947,953,967,971,977,983,991,997};
    
    for(int i = 999; i >= 100; i--) {
    
        String palstr = String.valueOf(i) + (new StringBuilder().append(i).reverse());
        int pal = Integer.parseInt(pal);
        int[] factors = new int[20]; // cannot have more than 20 factors
        int remainder = pal;
        int facpos = 0;
        primeloop:
        for(int p = 0; p < primes.length; i++) {
            while(remainder % p == 0) {
                factors[facpos++] = p;
                remainder /= p;
                if(remainder < p) break primeloop;
            }
        }   
        // now to do the combinations here 
    }
    

提交回复
热议问题