0

http://codegolf.com/prime-factorsに着想を得て、最小限のキーストロークでこの問題を解決してみてください。

悲しいことに、競合できるのは Perl/PHP/Python/Ruby だけです。この問題が、それほど伝統的ではない他の言語で解決さ​​れることを期待しています。

4

6 に答える 6

0

Python127文字

a=input()
x=2
print'%d:'%a,
while x*x<=a:
 c=0
 while a%x==0:a/=x;c+=1
 if c:print`x`+('','^%d'%c)[c!=1],
 x+=1
if a>1:print a
于 2012-12-07T05:47:04.027 に答える
0

Perl10798文字_

printf'%d: ',$n=<>;for($p=1;$n>=++$p;){for($i=0;0==$n%$p;$i++){$n/=$p}print$p,
$i>1?"^$i ":" "if$i}

それは

printf '%d: ', $n = <>;
for ($p = 1; $n >= ++$p;) {
  for ($i = 0;  0 == $n % $p;  $i++) {
    $n /= $p
  }
  print "$p", $i > 1 ? "^$i " : ' ' if $i
}
于 2009-10-14T18:52:07.270 に答える
0

Python、214 文字

p=int(raw_input())
def r(x,d):d[x]=d.setdefault(x,0)+1;return d
y=lambda x,d:d==x and {x:1} or x%d and y(x,d+1) or r(d,y(x/d,2))
print "%d: %s"%(p," ".join([`x`+("^"+`c` if ~-c else "") for x,c in y(p,2).items()]))

私の最初のコードゴルフ、判断しないでください。おそらく多くの最適化を行うことができます。

利点として、適切にフォーマットされます。

于 2010-10-22T06:23:04.087 に答える
0

パール

関数だけ - 素因数のリストを返します (49 個の重要* 文字):

sub p {
  $p = $_[0];
  return if $p == 1;
  $p % $_ or return($_, p($p/$_)) for 2..$p;
}

定数の素数を見つけるために使用されます (有効な 23 文字*):

$, = " ";
print p(10), "\n";

ユーザー入力から数値の素数を見つけるために使用されます (有効な 28 文字*):

$, = " ";
print p(<STDIN>), "\n";

* 「重要な」文字は、適切な構文に必要なすべての空白と同様に、非空白です。興味のある方のために、重要な空白は太字で示しています。:P

于 2009-03-25T01:12:47.453 に答える
0

ハスケル

私は最近、Haskell を学び始めました。これは、あまり知られていない (しかし非常に優れた) 言語での試みです。

main=readLn>>=print.f 2
f a 1=[]
f a x=if x`mod`a==0 then show a:f a(x`div`a)else f(a+1)x

89文字ですが、出力形式が正しくないため、本当に不正行為です。出力を修正しようとしましたが、208 文字未満にできませんでした。

import List
main=readLn>>=w
w n=putStrLn.foldl1(++).v n.map m.group.f 2$n
m a=' ':head a++j(length a)
v n=((s n++":"):)
s=show
j 1=[]
j n='^':s n
f a 1=[]
f a x=if x`mod`a==0 then s a:f a(x`div`a)else f(a+1)x

改善を歓迎します。余談ですが、GHC で文句を言わずに削除できるホワイトスペースの量に驚きました。

于 2010-08-01T00:24:24.103 に答える
0

PowerShell、146 161文字

$i="$input"
"$i`: "+(
  $(
    for(;$i-gt1){
      for($x=1;++$x-le5e9){
        if(!($i%$x)){
          $i/=$x
          $x
          break
        }
      }
    }
  ) |
  sort |
  group |
  %{
    ''+$_.Name+('^'+$_.Count)*($_.Count-gt1)
  })

現在、ほとんどゴルフをしていません。

于 2010-08-02T07:52:04.747 に答える