Hatena::Grouprubyist

たばさの RSSフィード

10/20(土) 2007

素数。ながいなー (言語書き比べ)

| 素数。ながいなー (言語書き比べ) - たばさの を含むブックマーク はてなブックマーク - 素数。ながいなー (言語書き比べ) - たばさの

みんなどういう頭してるんだか。

golfやってると変な癖が付く

http://golf.shinh.org/p.rb?prime+numbers

(ところでここのebanさんはやっぱりlistのひとかなあ)


ruby

# prime-num.rb
z=[2];r=[2]
270.times{|i|  #2以上の奇数を入れる
  r << i*2+3
}
r.length.times{|i|
  f =0
  (i/2+1).times{|w|
    f =1 if r[i]%(w+2)==0 #余りがゼロ、割り切れる
  }
  z << r[i] if f==0
}
gets.to_i.times{|i|
  puts z[i]
}

以下、書換え

python,c,c++,c#,d,java,javascript,pascal,awk,なでしこ,ひまわり,perl,bash

# prime-num.py
z=[2]
r=[2]+[i*2+3 for i in range(270)]
for i in range(len(r)):
  f=0
  for w in range(i/2+1):
    if r[i]%(w+2)==0:
      f =1; break
  if f==0:
    z +=[r[i]]
m =input()
for i in range(m):
  print z[i]
/* prime-num.c */
main(){
 int z[271],r[271];
 int i,w,k=0;
 int f,m;
 z[0]=r[0]=2;
 for(i=0;i<270;i++) r[i+1]=i*2+3;
 for(i=0;i<271;i++){
  f=0;
  for(w=0;w<i/2+1;w++) if(r[i]%(w+2)==0) f=1;
  if(f==0) z[++k]=r[i];
 }
 scanf("%d",&m);
 for(i=0;i<m;i++) printf("%d\n",z[i]);
}
// prime-num.cpp
#include <iostream.h>
main(){
 int z[271],r[271];
 int i,w,k=0;
 int f,m;
 z[0]=r[0]=2;
 for(i=0;i<270;i++) r[i+1]=i*2+3;
 for(i=0;i<271;i++){
  f=0;
  for(w=0;w<i/2+1;w++) if(r[i]%(w+2)==0) f=1;
  if(f==0) z[++k]=r[i];
 }
 cin>>m;
 for(i=0;i<m;i++) cout<<z[i]<<endl;
}
//prime_num.d
import std.cstream;
void main(){
 int[271] z,r;
 int i,w,k=0;
 int f,m;
 z[0]=r[0]=2;
 for(i=0;i<270;i++) r[i+1]=i*2+3;
 for(i=0;i<271;i++){
  f=0;
  for(w=0;w<i/2+1;w++) if(r[i]%(w+2)==0) f=1;
  if(f==0) z[++k]=r[i];
 }
 din.scanf("%d",&m);
 for(i=0;i<m;i++) dout.printf("%d\n",z[i]);
}
// prime-num.cs
using System;
public class C
{
  public static int Main()
  {
    int [] z=new int[271];
    int [] r=new int[272];
    int i,w,k=1;
    int f,m;
    z[0]=r[0]=2;
    for(i=0;i<271;i++){
      r[i+1]=i*2+3;
    }
    for(i=0;i<271;i++){
      f=0;
      for(w=0;w<i/2+1;w++){
        if(r[i]%(w+2)==0){
          f=1;
        }
      }
      if(f==0){
        z[k]=r[i];
        k++;
      }
    }
    m = int.Parse(Console.ReadLine());
    for(i=0;i<m;i++){
      Console.WriteLine("{0}",z[i]);
    }
    return 0;
  }
}
// Primenum.java

import java.io.*;

class Primenum{
  public static void main(String[] args) throws Exception{
    int [] z=new int[271];
    int [] r=new int[272];
    int i,w,k=1;
    int f,m;
    z[0]=r[0]=2;
    for(i=0;i<271;i++){
      r[i+1]=i*2+3;
    }
    for(i=0;i<271;i++){  
      f=0;
      for(w=0;w<i/2+1;w++){
        if(r[i]%(w+2)==0){
          f=1;
        }
      }
      if(f==0){  
        z[k]=r[i];
        k++;
      }
    }
    BufferedReader e = new BufferedReader( new InputStreamReader(System.in) );
    String s = e.readLine();
    m = Integer.parseInt(s);
    for(i=0;i<m;i++){
      System.out.println(z[i]);
    }
  }
}
/* prime-num2.awk */
END{
for(i=0;i<550;i++)for(j=0;j<275;j++)r[(i+2)*(j+2)]=1
m=$0
for(i=0;i<550&&m>0;i++)if(r[i+2]!=1){print i+2;m-=1}
}
# prime-num2.rb
r=[]
550.times{|i|275.times{|j|r[(i+2)*(j+2)]=true}}
c=gets.to_i
550.times{|i|(c-=1;puts i+2)if !r[i+2];c>0?0:exit}
# 素数.nako (なでしこ)
数で0から552*277まで繰り返す。
  箱【数】は0。

段階で0から550まで繰り返す。
 段で0から275まで繰り返す。
  箱【(段+2)*(段階+2)】は空。 

「素数をいくつ?」と尋ねる。
最大はそれ。
 
段階で0から550まで繰り返す。
 箱【段階+2】で条件分岐。
  空ならば続ける。
  0ならば「{段階+2}」と表示。
    最大から1を引く。
    最大はそれ。
 最大で条件分岐。
  0ならば抜ける。
' 素数.hmw
数を、0から、552まで、繰り返すって。
  箱#数は、0だし。

段を、0から、50まで、繰り返すぞ(
 階を、0から、50まで、繰り返すって(
   値は、(段+2)*(階+2)だ。
  箱#値は、1だね。
  )。
)。
「素数をいくつ?」と、尋ねよ。
最大は、それ。
 
段階を、0から、550まで、繰り返そう(
 もし、箱#(段階+2)が、1ならば、続けるだろ。
 違えば、(「{段階+2}」と、表示してみよう。
    最大から、1を、引くがいい。
    最大は、それ。)。
 もし、最大が、0ならば、抜けるさ。
  違えば、続けるんだね。
)。
{primenum.pas}
program pr;
var
  i,j,m: integer;
  r: array[0..552*277] of integer;
begin
    for i := 0 to 550 do begin
       for j := 0 to 275 do begin
          r[(i+2)*(j+2)] := 1
       end;
    end;
    read(m);
    for i := 0 to 550 do begin
      if m = 0 then break;
      if r[i+2] <> 1 then begin
        writeln(i+2);
        m := m-1;
      end;
    end;
end.
// primenum.js
r=[]
for(i=0;i<550;i++){
  for(j=0;j<275;j++){
    r[(i+2)*(j+2)]=1;
  }
}
c=readline()
for(i=0;i < 550;i++){
  if(r[i+2]!=1)
    {c-=1;print(i+2)}
  c>0?0:exit
}
# primenum.pl
@r=();
for($i=0;$i<550;$i++){
  for($j=0;$j<275;$j++){
    $r[($i+2)*($j+2)]=1;
  }
}
read(STDIN,$c,5);
for($i=0;$i<550;$i++){
  if($c==0){next;}
  if($r[$i+2]!=1){$c=$c-1;print $i+2,"\n"}
}
# primenum.sh (bash)
ri=()
i=1
m=0
while [ $i -lt 275 ];do
  j=0
  x=$((550 / i + 1))
  while [ $j -lt $x ];do
   m=$(( (i + 1)*(j + 2) ));
   j=$(($j + 1))
   ri[$m]=1
  done
  i=$((i + 1))
done
read -r m
i=0
c=0
while [ 0 ];do
 n=$((i + 2))
 c=$((ri[n]))
 if [ $c != 1 ];then
  if [ $m -eq 0 ];then
   exit
  fi
  echo ${n}
  m=$((m - 1))
 fi
 i=$((i + 1))
done
-- prime-1.lua
x=tonumber(io.read())
p=2
for i=3,1e3 do
  _G[0]=1
  for j=2,i/2 do
    _G[i%j]=q
  end
  if _G[0] then
    x=x-1
    if(x<0) then
      break
    end
    print(p)
    p=i
  end
end
トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20071020
カレンダー
<< 2007/10 >>
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
archive Error : RSSが取得できませんでした。