카테고리 보관물: 코딩

코딩

전치, 소수, 오 마이! 사각형의 영역에서 측정됩니다. 즉, 공백이

작업은 간단합니다. 프로그램은 정수를 입력으로 읽고 소수인지 여부를 인쇄합니다. “yes / no”, “true / false”또는 결과를 명확하게 식별하는 모든 것을 인쇄 할 수 있습니다.

문제는 코드가 행과 열이 바뀐 상태에서 작동해야한다는 것입니다.

명백한 솔루션 (주석을 사용하여 문자별로 세로로 반복되는 가장 짧은 “간단한”솔루션)을 제외하기 위해 메트릭은 일반적인 코드 골프와 약간 다릅니다.

이 과제 에서는 서식이 매우 중요 하므로 코드 크기는 코드가 가장 작은 사각형의 영역에서 측정됩니다. 즉, 공백이 계산되고 행의 길이는 동일해야합니다 ( 단순화를 위해 솔루션을 게시 할 때 실제로해야합니다.) 예를 들어

int main()
{
    return 0;
}

크기는 4 * 13 = 52 이며, 두 가지 기준 (프라임 검출 및 트랜스 포저 블) 중 하나에 맞지 않습니다.

가장 작은 크기가 이깁니다.

함수의 유일한 목적이 소수를 찾고 생성하거나 감지하는 것 이외의 모든 언어 및 라이브러리 함수를 사용할 수 있습니다.

편집하다:

우승자가 아마도 Golfscript 솔루션 일지 모르지만 최고의 C 또는 C ++ 솔루션에 대해 50 포인트 현상금을 수여합니다!



답변

GolfScript, 13 × 1

~.,2>{1$\%!}?

GolfScript가 다시 공격합니다!

입력이 소수이면 입력을 반복하고, 그렇지 않으면 입력을 가장 작은 적절한 제수와 연결하여 인쇄합니다. 그렇습니다. “명확하게 결과를 식별하는 것은 무엇이든”이라는 정의를 확장하고 있지만, 더 멋진 일을하려면 약간의 추가 문자가 필요합니다. 더 나은 출력을 원하면 ;]!코드에 세 문자 를 추가하면 1소수와 0복합 숫자가 생성됩니다.

이 알고리즘은 실제로 비효율적이며 2에서 n -1 까지의 무차별 대입 시험 분할입니다 . 대부분의 GolfScript 연산자는 단일 문자 일 뿐이므로이 코드는 잘 바뀝니다. 그러나 할당 연산자 :는 자신과 대상 사이에 공백을 허용하지 않으므로 변수없이 완전히 수행해야했습니다.


답변

C, 2 * 70 2 * 60

y소수를 인쇄 합니다.
편집 : 10자를 저장하도록 코드를 변경했습니다. 매개 변수없이 실행해야합니다 (so m=1).

main(m,n){for(scanf("%d",&n);n%++m&&n>1;);n-m||puts("y");}/*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

조옮김을 처리하는 방법은 매우 일반적이며 모든 프로그램에 적용 할 수 있습니다.
이것을 변환을 기반으로합니다.

abcd/*
\\\\*/

이에:

a\
b\
c\
d\
/*
*/

그리고 둘 다 단순히 의미 abcd합니다.


답변

C-13×13

stdin에서 입력을 읽고 1소수와 소수 0가 아닌 경우 를 인쇄합니다 .

////m(i;(a=)<
////aans")a;2
//:Di)tc%;;p)
//O n{ adfau+
main//bn"o%t4
(a){///f,r-c8
int b///&(-h)
;scanf///bba;
("%d",&///;r}
a);for(b///(
=a;a%--b;//(
);putchar((b
<2)+48);}

편집 : gcc 및 clang으로 컴파일, 다른 컴파일러는 테스트되지 않았습니다.


답변

C, 12×12 자

동일한 코드를 기반으로 한 다른 답변 과 달리 2 차원 솔루션 (그리고 마찬가지로 y합성을 위해 아무것도 인쇄 하지 않습니다).
구조는 Quasimodo의 답변 과 비슷 하지만 코드가 짧아서 코맨트 사용법이 조금 더 효율적이므로 12×12에 맞출 수 있다고 생각합니다.

////m()s";np
////am{c%n>u
////i,fad%1t
////nnon"+;s
main//rf,+)(
(m,n//((&m;"
){for(//n&ny
scanf(//)&-"
"%d",&n)//m)
;n%++m&&//|;
n>1;);n-m||
puts("y"); }


답변

펄, 14 x 14

나는 이것에 매달리고 있다고 생각한다. 명령 행 인수, 출력 0또는 로 숫자를 지정하십시오 1. 아마도 개선의 여지가 더 많을 것입니다.

$   n=pop;$p|=
 !  ($n%$_)for
  2 ..$n/2;
   print!$p+m~
n(.r
=$.i
pn$n
o%nt
p$/!
;_2$
$);p
pf +
|o m
=r ~


답변

대칭적이고 비효율적 인 솔루션에 대한 주석이 남용되었습니다.

/{/////////////////////////////////
{(~)any 0=mod[x;2+(!)x-2]}"I"$(0:)0
/~
/)
/a
/n
/y
/
/0
/=
/m
/o
/d
/[
/x
/;
/2
/+
/(
/!
/)
/x
/-
/2
/]
/}
/"
/I
/"
/$
/(
/0
/:
/)
/0

STDIN에서 입력을 받고 부울을 리턴합니다.


답변

젤리 , 2×2 정사각형

PÆ
ÆP

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

조옮김 부분이 올바른 것으로 생각되며, 그렇다면 조옮김 버전은

PÆ
ÆP

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

(동일한 코드입니다)