Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 14.07.2013 18:56:48
Ausgangspunkt:
Code: Alles auswählen
perl -lne '(1x$_) !∼ /^1?$|^(11+?)\1+$/ && print "$_ is prime"'
implemented:
Code: Alles auswählen
seq 100|perl -lne '$\="";(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ ";END {print "\n"}'
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
golfed:
Code: Alles auswählen
seq 99|perl -l40nE'(1x$_)!~/^1?$|^(11+)\1+$/&&print}{say' # 57
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Eine
Perl-Pearl!
Zuletzt geändert von
linuxCowboy am 18.07.2013 03:10:01, insgesamt 1-mal geändert.
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
wanne
- Moderator
- Beiträge: 7552
- Registriert: 24.05.2010 12:39:42
Beitrag
von wanne » 14.07.2013 22:43:22
Drittprogramme sind unfair: (dash/openssl)
gegen (garantiert noch optimierbare)
Code: Alles auswählen
n=2; while [ $n -le 500 ]; do z=2; f="p"; while [ $z -le $(($n-1)) ]; do [ $(($n%$z)) -eq 0 ] && f="n"; z=$(($z+1)); done; [ "$f" = "p" ] && echo $n; n=$(($n+1)); done
(Im übrigen Beeindruckend wie viel schneller das läuft als wenn man das so schreibt. (Orginalversion war mit if then fi))
Nochbäser währe Java oder maxima enfach nextprime sagt:
Code: Alles auswählen
echo "i:1;while i<99 do print(i:next_prime(i));" | maxima
rot: Moderator wanne spricht, default: User wanne spricht.
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 14.07.2013 22:50:05
Zugegeben, das hat was:
Die Installationsroutine allein war den Blick schon wert!
(andere würden einfach einen tarball anbieten.
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
GoKi
- Beiträge: 2068
- Registriert: 04.07.2003 23:08:56
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von GoKi » 14.07.2013 23:45:51
Dann halt noch mal mit Boardmitteln:
MfG GoKi
:wq
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 15.07.2013 00:21:22
maxima - Wow, wo hast du die denn ausgegraben... die
lib hat 36MB!
Code: Alles auswählen
echo "i:1;while i<97 do print(i:next_prime(i))$"|maxima -q|sed /%/d|tr -d '\n';echo # 83
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
openssl ist kreativ:
Code: Alles auswählen
for i in `seq 99`;do openssl prime $i|grep -q n||echo -n "$i ";done;echo # 72
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
eine schöne Fingerübung in
bash:
Code: Alles auswählen
n=2;while((n<99));do z=2;f=1;while((z<n));do((n%z))||f=0;((++z));done;((f))&&echo -n "$n ";((++n));done;echo # 108
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Keep coding!
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
wanne
- Moderator
- Beiträge: 7552
- Registriert: 24.05.2010 12:39:42
Beitrag
von wanne » 15.07.2013 00:56:19
linuxCowboy hat geschrieben:maxima - Wow, wo hast du die denn ausgegraben... die lib hat 36MB!
Meiner meinung nach das bei weitem beste OpenSource CAS Außerdem muss man die schon deshalb loben weil sie das in lisp geschrieben haben.
rot: Moderator wanne spricht, default: User wanne spricht.
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 15.07.2013 01:40:02
an Originalität dem
Perler durchaus vergleichbar:
Code: Alles auswählen
seq 2 99|awk '{for(d=1;$1%++d;);if(d==$1)printf "%d ",$1}';echo # 63
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
nur in der B-Note schwächelt er...
wanne hat geschrieben:...das bei weitem beste OpenSource CAS
Ja ist schon erstaunlich, was sich so in den Weiten des debian-Archivs verbirgt!
PS: ...schon wird's eine B+:
Code: Alles auswählen
seq 2 99|awk '{for(d=1;$1%++d;);if(d==$1)printf d" "}';echo # 59
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
rendegast
- Beiträge: 15041
- Registriert: 27.02.2006 16:50:33
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von rendegast » 15.07.2013 08:42:43
Nebenbei
http://packages.debian.org/wheezy/maxima
unten die Paketgrößen unterscheiden sich doch stark 120MB (amd64/i386)<-> ~40MB (andere),
die filelist sind identisch.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")