[1번 문제] 입력된 정수에 따라 다음과같이 만드시오

정수 5

5

     54

    543

  5432

 54321

[2번문제 ]정수를 읽어들이고 증가되는 순서로 이 정수들의 최소 인수를 출력하는 프로그램을 작성하시오

예  

양의 정수? 120

 120 = 2*2*2*3*5 입니다

 

 

 

 

#############################1번문제소스

import java.util.Scanner;
import java.lang.Math.*;

public class ForBigGay1

 public static void main (String args[])
 {  
  Scanner input = new Scanner( System.in );
  
  System.out.print("Enter integer: ");
  
  int integer = input.nextInt();
     
  for (int i = 0 ; i < integer; i++)
  {
   for (int k = integer - i - 1; k > 0 ; k--)
   {
    for (int kk = (int)Math.log10(k) ; kk>-1;kk--)
    {
     System.out.printf(" ",k);
    }    
   }   
   
   for (int j = integer ; j >= integer - i ; j--)
   {
    System.out.printf("%d",j);
   }
   
   System.out.println("");
  } 
 }
}
###############################2번문제소스

 

/* 120 = 2 * 2 * 2* 3* 5*/

import java.util.Scanner;
import java.lang.Math.*;

public class ForBigGay2
{
 
 public static int Fibonacci (int num)
 {
  if ((num == 1) || (num == 2))
  {
   return 1;
  
  }else {
   return  Fibonacci(num -1) + Fibonacci(num-2);  
  }  
 }
  
 public static void main (String args[])
 {
  Scanner input = new Scanner (System.in);
    
  System.out.print("Enter positive integer:");  
  
  int num = input.nextInt();
  int Fibo = 1;
  
  System.out.printf("%d = ", num);
  
  for (int i = 3; num > 1 ; )
  {   
   Fibo = Fibonacci( i);
   
   if ( num % Fibo == 0)
   {   
    System.out.printf("%d ",Fibo );
    num /= Fibo;
    if (num != 1) System.out.print("* ");
    continue;
   }   
   i++;  
  }
  
 }
}

 

############################################################

이렇게 하는거 맞나요?