정의 : 소수 는 자연수이며 p n 형식으로 표현할 수있는 자연수입니다. 여기서 p는 소수이고 n은 자연수입니다.
작업 : 프라임 전력 p n > 1이 주어지면 프라임 p를 반환합니다.
테스트 케이스 :
input output
9 3
16 2
343 7
2687 2687
59049 3
채점 : 이것은 code-golf 입니다. 바이트 단위의 최단 답변이 이깁니다.
n = 1.
정의 : 소수 는 자연수이며 p n 형식으로 표현할 수있는 자연수입니다. 여기서 p는 소수이고 n은 자연수입니다.
작업 : 프라임 전력 p n > 1이 주어지면 프라임 p를 반환합니다.
테스트 케이스 :
input output
9 3
16 2
343 7
2687 2687
59049 3
채점 : 이것은 code-golf 입니다. 바이트 단위의 최단 답변이 이깁니다.
n = 1.
답변:
T.Ajax,.Page,.Act I:.Scene I:.[Enter Ajax and Page]Ajax:Listen tothy!Page:You cat!Scene V:.Page:You be the sum ofyou a cat!Be the product ofthe quotient betweenI you you worse I?If soLet usScene V.Open heart
(I/you)*you<II%you>0SPL 보다 짧습니다 .
n->{int r=1;for(;n%++r>0;);return r;}
@Tsathoggua 덕분에 간접적으로 -7 바이트 . JoKing
덕분에 -2 바이트
설명:
n->{ // Method with integer as both parameter and return-type
int r=1; // Start the result-integer `r` at 1
for(;n%++r>0;); // Increase `r` by 1 before every iteration with `++r`
// and loop until `n` is divisible by `r`
return r;} // After the loop, return `r` as result
n->{for(int i=1;++i<=n;)if(n%i<1)return i;}(43 개) 문자를 얻으려면? (저는 Java를 못해요.)
n->{for(int i=1;++i<=n;)if(n%i<1)return i;return n;}작동하지만 불행히도 더 깁니다. Java는 무한 루프에서 단일 리턴을 가질 수 있으므로 실제로 바이트를 절약 할 수 있습니다. 감사합니다! n->{for(int i=1;;)if(n%++i<1)return i;}. 이후 i이 될 것이다 n(테스트 케이스와 마찬가지로 결국 2687)과 n%n==0의는 i<=n이 경우에 필요하지 않습니다.
if/else로 and/or. 처럼 f=lambda n,x=2:n%x and f(n,x+1)or x.
[S S T T N
_Push_-1][S S S N
_Push_0][T N
T T _Read_STDIN_as_number][N
S S N
_Create_Label_LOOP][S S S T N
_Push_1][T S S T _Subtract][S N
S _Duplicate][S S S N
_Push_0][T T T _Retrieve][S N
T _Swap][T S T T _Modulo][N
T T N
_If_0_Jump_to_Label_LOOP][S S T T N
_Push_-1][T S S N
_Multiply][T N
S T _Print_as_number]
@JoKing 덕분에 -20 바이트 .
문자 S(공백), T(탭) 및 N(줄 바꾸기)가 강조 표시로만 추가되었습니다.
[..._some_action]설명으로 만 추가되었습니다.
온라인으로 시도하십시오 (원시 공백, 탭 및 줄 바꾸기 만).
의사 코드의 설명 :
Integer n = STDIN as integer
Integer i = -1
Start LOOP:
i = i - 1
if(n modulo-i is negative)
Go to next iteration of LOOP
else
i = i * -1
Print i
Exit with error: No exit defined
예제 실행 : input = 9
Command Explanation Stack Heap STDIN STDOUT STDERR
SSTTN Push -1 [-1]
SSSN Push 0 [-1,0]
TNTT Read STDIN as integer [-1] {0:9} 9
NSSN Create Label_LOOP [-1] {0:9}
SSSTN Push 1 [-1,1] {0:9}
TSST Subtract top two (-1-1) [-2] {0:9}
SNS Duplicate top (-2) [-2,-2] {0:9}
SSSN Push 0 [-2,-2,0] {0:9}
TTT Retrieve [-2,-2,9] {0:9}
SNT Swap top two [-2,9,-2] {0:9}
TSTT Modulo top two (9%-2) [-2,-1] {0:9}
NTSN If neg.: Jump to Label_LOOP [-2] {0:9}
SSTTN Push -1 [-2,-1] {0:9}
TSST Subtract top two (-2-1) [-3] {0:9}
SNS Duplicate top (-2) [-3,-3] {0:9}
SSSN Push 0 [-3,-3,0] {0:9}
TTT Retrieve [-3,-3,9] {0:9}
SNT Swap top two [-3,9,-3] {0:9}
TSTT Modulo top two (9%-3) [-3,0] {0:9}
NTSN If neg.: Jump to Label_LOOP [-3] {0:9}
SSTTN Push -1 [-3,-1] {0:9}
TSSN Multiply top two (-3*-1) [3] {0:9}
TNST Print as integer [] {0:9} 3
error
프로그램이 오류와 함께 중지됩니다 : 종료를 찾을 수 없습니다.
i == n수표 가 필요하십니까 ? n%n어쨌든 0 일 것입니다
n%i인쇄하고 나중에 프린트를 호출 할 수 있습니까?
@(x)factor(x)(1)
@(x) % Anonymous function taking x as input
factor(x) % Prime factorization
(1) % Get the first element
또는:
@(x)max(factor(x)) % the makeup of makeup artists
0==1>내가 생각할 수 있습니다 .
: f 1 begin 1+ 2dup mod 0= until ;
: f \ Define a new word
1 \ place a 1 on the stack (to use as a counter/index)
begin \ start indefinite loop
1+ 2dup \ increment counter and duplicate counter and prime power
mod \ calculate power % index
0= until \ end the loop if modulus is 0 (no remainder)
; \ end word definition
param($a)(2..$a|?{!($a%$_)})[0]
의 범위를 구축 2입력 $a, 이들 요소 꺼내서 where( ?) 모듈로 연산 %제로는 결과 !(...)(즉,의 약수 된 것 $a)을, 그리고 최소 필요 [0]한쪽. 그것은 파이프 라인에 남아 있으며 출력은 암시 적입니다.
{grep($_%%*,2..$_)[0]}
입력 범위에서 2까지의 계수를 필터링하고 첫 번째 요소를 반환하는 익명 코드 블록입니다. ^$2 바이트를 절약하기 위해 사용하려고 시도했지만 입력이 소수 인 경우에는 작동하지 않았습니다.
@Jo King 덕분에 -52 바이트
Function A(n)
For i=n To 2 Step-1
A=If(n Mod i=0,i,A)
Next
End Function
언 골프 드 :
Function A(input As Long) As Long
For i = input To 2 Step -1
A = If (input Mod i = 0, i, A)
Next
End Function
설명:
i루프 검색의 첫 번째 숫자로부터 뒤로, 그리고 균등하게 분할 모든 번호를 찾는다. 우리가 뒤로 가고 있기 때문에 가장 작은 것이 Vairable에 저장됩니다 A.
VB는 함수 이름과 일치하는 무료 변수를 제공합니다 (제 경우에는 A). 함수 실행이 끝나면 해당 변수의 값이 리턴됩니다 (명시 적 Return명령문 제외) .
Java에서 Kevin Cruijssen의 답변에서 영감을 얻었습니다 .
Jo King 덕분에 2 3 바이트가 제거되었습니다 .
lambda n:[i+1for i in range(n)if n%-~i<1][1]
if있으며 조건이 될 수 있습니다.<1
require"prime"
i=gets.to_i
Prime.each(i){|p|(1..i).each{|n|c=p**n==i
puts p if c
exit if c}}
n1이 될 수 있습니까 ?