'순열'에 해당되는 글 3건

  1. 2012.05.31 [오일러프로젝트] 62번문제
  2. 2012.03.30 [오일러프로젝트] 49번문제
  3. 2012.03.24 [오일러프로젝트] 43번문제


세제곱수인 41063625 (=3453) 로 순열을 만들어보면, 그 중에서 56623104 (=3843)와 66430125 (=4053)가 또 세제곱수입니다.
실제 41063625은, 자릿수로 만든 순열 중에서 3개가 세제곱수인 가장 작은 수입니다.

그러면 자릿수로 만든 순열 중에서 5개가 세제곱수인 가장 작은 숫자는 무엇입니까?



처음에 순열이라는 단어에 혹해서
n**3인 dict를 생성하고, 각 n**3의 순열 리스트를 구해서 5개가 되는지

하나하나 찾아가는 로직으로 구현했는데 속도가 너무 떨어졌다. 생각해보니 순열이라는것이

결국은 sort하면 같은 수가 되는 애들이라..


57623의 다른 순열 23675가 있을 때 이 두 수를 정렬시키면

23567로 같은 수를 가지게 되는 것... 이것을 사용해서 n**3의 값을 정렬하여 같은 값을 갖는

애들끼리(순열) 모았음....



Python
순열=itertools라는 이 공식이 머리속에 박혀버린듯..-.-


Posted by 용식


1487, 4817, 8147은 3330씩 늘어나는 등차수열입니다. 이 수열에는 특이한 점이 두 가지 있습니다.

  • 세 수는 모두 소수입니다.
  • 세 수는 각각 다른 수의 자릿수를 바꿔서 만들 수 있는 순열(permutation)입니다.

1자리, 2자리, 3자리의 소수 중에서는 위와 같은 성질을 갖는 수열이 존재하지 않습니다. 하지만 4자리라면 위엣것 말고도 또 다른 수열이 존재합니다.

그 수열의 세 항을 이었을 때 만들어지는 12자리 숫자는 무엇입니까?


우선..4자리의 소수들을 구하고
brute-force를 통해서 등차수열을 만족하는 3개의 수를 구하고 그 3개의 수가
순열조합으로 나올 수 있는 수인지 확인...


Python
조금 만지면 더 빠르게 될 것 같은데... 일단 skip. 근데 계속 파이썬으로만 풀게되네...;; 

Ruby
Perl


Posted by 용식


숫자 1406357289은 0 ~ 9 팬디지털인데, 부분열에 관련된 재미있는 성질을 가지고 있습니다.

d1을 첫째 자리수, d2를 둘째 자리수...라고 했을 때, 다음과 같은 사실을 발견할 수 있습니다.

  • d2 d3 d4 = 406 → 2로 나누어 떨어짐
  • d3 d4 d5 = 063 → 3으로 나누어 떨어짐
  • d4 d5 d6 = 635 → 5로 나누어 떨어짐
  • d5 d6 d7 = 357 → 7로 나누어 떨어짐
  • d6 d7 d8 = 572 → 11로 나누어 떨어짐
  • d7 d8 d9 = 728 → 13으로 나누어 떨어짐
  • d8 d9 d10 = 289 → 17로 나누어 떨어짐

위와 같은 성질을 갖는 0 ~ 9 팬디지털을 모두 찾아서 그 합을 구하면 얼마입니까?


팬디지털 생성만 알면 그 다음은 그냥 평이한문제..
순열을 사용해 10자리 팬디지털을 생성 후 조건에 맞는 것을 찾음


 

Python
Ruby
Perl
Posted by 용식