Project_Euler #4 (Matlab)
===

I have Written the following code and put a lot of time into it. But there is just something intrinsically wrong with it, if someone could kindly direct me in making it more efficient, I would be infinitely grateful. 

It currently produces NO output.

    % A palindromic number reads the same both ways.
    % The largest palindrome made from the product of
    % two 2-digit numbers is 9009 = 91  99.

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

    % 1) Find palindromes below 100x100 (product of two 3 digit #s)
    % 2) For each palindrome found, find the greatest Factors.
    % 3) The first palindrome to have two 3 digit factors is the
    %    Solution



    %============== Variables ===============================
    %
    % number = a product of 2 3 digit numbers, less than 100x100. The
    % Palindrome we are looking for.
    %
    % n1, n2 = integers; possible factors of number.
    %
    % F1, F2 = two largest of factors of number. multiplied
    % together they == number.
    %
    % finish = boolean variable, decides when the program terminates


    % ================= Find Palindrome ================================
    
    % The maximum product of two 3 digit numbers
    
    number = 999*999;
    finish = false;
    count = 0;

    while ( finish == false)
    
    %
    % Check to see if number is a Palindrome by comparing
    % String versions of the number
    %
    % NOTE: comparing num2string vectors compares each element
    % individually. ie, if both strings are identical, the output will be
    % a vector of ONES whose size is equal to that of the two num2string
    % vectors.
    %
    if ( mean(num2str( number ) == fliplr( num2str ( number ) ) ) == 1  )
        
        % fprintf(1, 'You have a palindrome %d', number);
        
        
        
        
        
        
        
        
        
        % Now find the greatest two factors of the discovered number ==========
        
        n1 = 100;
        n2 = 100; % temporary value to enter loop
        
        
        
        % While n2 has 3 digits in front of the decimal, continue
        % Searching for n1 and n2. In this loop, n1 increases by one
        % each iteration, and so n2 decreases by some amount. When n2
        % is no longer within the 3 digit range, we stop searching
        while( 1 + floor( log10( n2 ) ) == 3 )
            
            
            n2 = number/n1;
            
            
            
            % If n2 is EXACTLY a 3 digit integer,
            % n1 and n2 are 3 digit factors of Palindrome 'number'
            if( 1 + log10( n2 )  == 3 )
                
                finish = true;
                
                Fact1 = n1;
                Fact2 = n2;
                
                
            else
                % increment n1 so as to check for all possible
                % 3 digit factors ( n1 = [100,999] )
                n1 = n1 + 1;
                
            end
            
        end
        
        
        
        
        % if number = n1*n2 is not a palindrome, we must decrease one of the
        % Factors of number and restart the search
    else
        
        count = count + 1;
        
        number = 999 * (999 - count);
        
        
        
    end
    
    end
    
    
    
    fprintf(1, 'The largest factors of the palindrome %i \n', number )
    fprintf(1, ' are %i and %i', Fact1, Fact2 )

