컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post C언어] gets, fgets 함수로, 키보드 문자(문자열) 입력 받기; String In...C언어] scanf 함수로, 문자열/정수/실수 입력 받기; scanf Function In...파일 개수 세기 도스 명령어; File Counter DOS Command매스매티카] 허수 단위 i 입력 방법; Mathematica IMAGINARY UNIT I...매스매티카] 루트 근사값, 제곱근 구하기 함수 사용법; Mathematica Square ...Java 자바] 정수 숫자 입력 받기, 16진수 헥사 입력; Input Hex Int Nu...Java 자바] 실수 입력 받기, 키보드로, 에러 처리 루프; Input Float Num...동영상 비디오 파일 포맷 확장자 종류 설명, Movie File ExtensionC에서 printf 함수로, double, float, int, unsigned int 출...C언어] switch 문 (스위치) 사용법 예제; switch-case-default St...

Perl 펄] 최대 공약수 구하기 함수, 유클리드 호제법; GCD, Euclidean Algorithm

Friday, March 23, 2007

펄로 최대공약수(GCD; Greatest Common Divisor)를 구하는 방법입니다. 펄에는 그런 함수가 내장되어 있지 않기에, 유클리드 호제법(Euclidean Algorithm)이라는 알고리즘으로 함수를 만들었습니다.

최대공약수 함수 예제; Greatest Common Divisor Function


스크립트 파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;

  print gcd(12, 18), "\n";
  # 6

  print gcd(5154, 3435), "\n";
  # 3

  print gcd(0, 0), "\n";
  # 0
  # 이 경우는 0으로 정의되어 있음

  print gcd(1, 0), "\n";
  # 1
  # 이것도 맞습니다.

  print gcd(0, 12), "\n";
  # 12
  # 이것도 맞습니다.

  print gcd(13, 12), "\n";
  # 1
  # 공약수가 1밖에 없는 '서로소(Relatively Prime; Coprime)'

  print gcd(-42, -56), "\n";
  # 14
  # 최대공약수는 항상 양수임

  # 세 가지 수의 최대공약수 구하기
  print gcd(gcd(42, 12), 48), "\n";
  # 6





# 최대 공약수 계산 함수
sub gcd {
  my $a = $_[0];
  my $b = $_[1];

  while ($b != 0) {
    my $temp = $a % $b;
    $a = $b;
    $b = $temp;
  }

  return abs($a);
}



▶▶ Perl 펄] 최소 공배수 구하기 함수; LCM; Least Common Multiple

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top