BIU 번호 (또는 합산 번호)


10

그들을 발견하는 방법

양의 정수 k를 취하십시오. 제수를 찾으십시오 . 각 제수고유 한 주요 요소를 찾으십시오 . 이 모든 요소를 ​​합산하십시오. 이 수 (sum)가 k의 제수 인 경우 (합이 k를 나누면 )이 숫자 k는 BIU 수입니다.

숫자를 봅시다 54
모든 제수를 [1, 2, 3, 6, 9, 18, 27, 54]
찾으십시오 : 각 제수 의 고유 한 주요 요소 를 찾으십시오
참고 :1 우리 의 경우에 고유 한 주요 요소를 취하는 경우1

1  -> 1  
2  -> 2  
3  -> 3  
6  -> 2,3  
9  -> 3  
18 -> 2,3  
27 -> 3  
54 -> 2,3 

이제 우리는의 합이 걸릴 모든 이 주요 요인
1+2+3+2+3+3+2+3+3+2+3=27
27분할 (54) (잎없는 나머지)
그래서 54 입니다 BIU 번호를 .

또 다른 (빠른) 예 k=55
: 약수 [1,5,11,55]
별개의 소인수의 합은 : 1+5+11+5+11=33
33 입니다 NOT 이유 (55)의 제수, 55이다 NOT BIU 번호 .

BIU 번호

다음은 처음 20 개입니다.

1,21,54,290,735,1428,1485,1652,2262,2376,2580,2838,2862,3003,3875,4221,4745, 5525,6750,7050 ...

그러나이 목록은 계속 되고 당신이 발견하기를 기다리는 많은 BIU 번호 가 있습니다!

도전

정수 주어 n>0로서 입력 , 출력 제 n BIU 번호

테스트 사례

입력-> 출력

1->1  
2->21   
42->23595  
100->118300    
200->415777    
300->800175    

이것은 입니다. 바이트 단위의 빠른 답변이 승리합니다!


2
그러나 1프라임은 아닙니다 ...
Stephen

3
@Stephen 그 이유는 내가 "1의 경우에는 구별되는 주요 요소 1로 간주합니다"라고 말했습니다. 이것이 나의 도전이며 이것이이 도전의 규칙 중 하나입니다. 나는 1이 소수라고 말하지 않았습니다.

4
숫자가 "BIU"라고하는 이유는 무엇입니까?
Misha Lavrov

4
나는 확실하지 않다 그러나 나는 그들의 일상 생활에 (하지 물론 우리의 우주에서 ...)을 사용하여 양성 지적 유니콘과 관련이 있다고 생각

5
Downvoters, 부끄러워하지 마십시오. 다른 사람들과 의견을 공유하십시오.

답변:


5

젤리 , 16 15 바이트

ÆDÆfQ€SS‘ḍ
1Ç#Ṫ

온라인으로 사용해보십시오!

내장 명령에 대한 사랑 나누기 (때로는 그렇게 내게하지만 그들은 신비 숨기기 @HyperNeutrino -1 바이트 감사 )

작동 원리

ÆDÆfQ€SS‘ḍ - define helper function: is input a BIU number?
ÆD             - divisors
  Æf           - list of prime factors
    Q€         - now distinct prime factors
      SS       - sum, then sum again ('' counts as 0)
        ‘      - add one (to account for '')
         ḍ     - does this divide the input?

1Ç#Ṫ - main link, input n
  #     - starting at 
1          - 1
        - get the first n integers which meet:
 Ç         - helper link
   Ṫ    - tail

–1 바이트 ÆfQ€대신 사용ÆFḢ€€
HyperNeutrino

2
but they mysteriously hide from me sometime"젤리는 원자 숨기기 및 프로그래머 찾기 게임"~ 나는 모든 사람을 비명
HyperNeutrino

1 바이트를 절약 할 수 있다고 생각합니다 ÆDÆFSSḢ‘ḍ.
Arnauld


3

Mathematica, 85 바이트

If[#<2,1,n=#0[#-1];While[Count[(d=Divisors)@++n,1+Tr@Cases[d/@d@n,_?PrimeQ,2]]<1];n]&

3

껍질 , 13 바이트

!fṠ¦ö→ΣṁoupḊN

온라인으로 사용해보십시오!

외식

  Ṡ¦ö→ΣṁoupḊ    Predicate: returns 1 if BIU, else 0.
           Ḋ    List of divisors
       ṁ        Map and then concatenate
        oup     unique prime factors
      Σ         Sum
    ö→          Add one
  Ṡ¦            Is the argument divisible by this result
 f          N   Filter the natural numbers by that predicate
!               Index

2

실제로 16 바이트

u⌠;÷♂y♂iΣu@%Y⌡╓N

온라인으로 사용해보십시오!

설명:

u⌠;÷♂y♂iΣu@%Y⌡╓N
u⌠;÷♂y♂iΣu@%Y⌡╓   first n+1 numbers x starting with x=0 where
   ÷                divisors
    ♂y              prime factors of divisors
      ♂iΣu          sum of prime factors of divisors, plus 1
  ;       @%        x mod sum
            Y       is 0
               N  last number in list

2

Pyth , 22 바이트

e.f|qZ1!%Zhssm{Pd*M{yP

여기 사용해보십시오!

이것은 처음으로 Pyth 솔루션입니다. 채팅에서 매우 친절한 사용자의 추천 덕분에 그것을 배우기 시작했습니다.

설명

ef | qZ1! % Zhssm {Pd * M {yP-전체 프로그램. Q = 입력

 .f-변수 Z를 사용하여 사실적인 결과를 갖는 첫 번째 Q 정수
     qZ1-Z는 1과 같습니까?
   | -논리 OR
                   {yP-주요 요인, 파워 셋, 중복 제거.
                 * M-각각의 제품을 구하십시오. 이 청크와 ^는 제수를위한 것입니다.
              m} Pd-각각의 고유 한 주요 요소를 구합니다.
           ss-평평하게하고 합산합니다.
          h-증분 (1을 처리하기 위해)
       % Z-위의 합계로 현재 정수를 모듈로합니다.
      ! 논리적 부정. 0-> True,> 0-> False.
e-마지막 요소

1

하스켈 , 115 바이트

여기에있는 모든 목록 이해가 골프를 밟을 수는 있지만 확실하지 않습니다. 골프 제안을 환영합니다! 온라인으로 사용해보십시오!

x!y=rem x y<1
b n=[a|a<-[1..],a!(1+sum[sum[z|z<-[2..m],m!z,and[not$z!x|x<-[2..z-1]]]|m<-[x|x<-[2..a],a!x]])]!!(n-1)

언 골핑

이 답변은 실제로 세 가지 기능이 함께 뭉개져 있습니다.

divisors a = [x | x <- [2..a], rem a x == 0]
sumPrimeDivs m = sum [z | z <- [2..m], rem m z == 0, and [rem z x /= 0 | x <- [2..z-1]]]
biu n = [a | a <- [1..], rem a (1 + sum [sumPrimeDivs m | m <- divisors a]) == 0] !! (n-1)

0

apt , 22 21 바이트

@¥(J±XvXâ ®k âÃxx Ä}a

그것을 테스트

g함수 방법이 더 짧은 솔루션으로 이어져야한다고 생각 하지만 작동 방식을 알 수는 없습니다!


설명

정수의 묵시적 입력 U.

@                  }a

에서 시작 0하여 다음 함수를 통과 할 때 true를 반환하는 첫 번째 숫자를 X현재 숫자로 반환합니다 .

Xâ ®   Ã

제수 ( â)를 구하고 X각 함수를 통과 시키십시오.

k â

k현재 요소 의 요인 ( )을 가져오고 중복 항목 ( â)을 제거하십시오 .

xx

먼저 각 하위 배열에 대해 동일한 작업을 수행 한 후 추가하여 배열을 줄입니다.

Ä

1결과에 추가하십시오 .

Xv

X해당 숫자로 나눌 수 있는지 테스트하십시오 .

해당 테스트 결과에 따라 J(초기 -1) 증가 합니다.

¥

와 같은지 점검하십시오 U.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.