少し前に定義して、これを実際に使うかどうか悩んでいたのですが、使う事にしました。という事で、URIで私を識別する必要がある場合はtag:stricter.org,2007-11-23:pi8027を使ってください。
int main(void)
{
1;
return 0;
}
こんなソースでもコンパイル出来るC言語はどうかしている。或る意味では合理的だけど。
OperaがMathMLに対応したらしい。
Windows Vista Home PremiumでOpera 9.24(build 8816)を使っていて見つけたバグ。Opera 9.50 beta(build 9659)では修正されているようです。
Stricter.orgを開く。
フルスクリーン表示にする。(F11)
コマンドラインからdiary.stricter.orgを開く。(コマンドプロンプトでopera http://stricter.org/と入力。)
フルスクリーン表示を解除。(F11)
カレントタブがdiary.stricter.orgなのに、表示されているページはStricter.orgになっている。
当然、開くページがStricter.orgとdiary.stricter.org以外でも同じ事が起きます。例外はあるかも知れませんが。
未満の素数を計算するプログラム。標準出力をファイルにリダイレクトさせて実行したら72秒で終わりました。
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define MIN 0
#define MAX 100000000
typedef struct integer_list{
struct integer_list *next;
unsigned int integer;
} integer_list_t;
void put_integer(unsigned int integer)
{
char temp[32];
char *pointer = temp+31;
temp[31] = 0;
while(integer){
pointer--;
*pointer = '0'+integer%10;
integer = integer/10;
}
puts(pointer);
return;
}
int main(void)
{
unsigned int count = 3;
integer_list_t *prime_list = NULL;
integer_list_t *prime_list_temp;
integer_list_t *prime_list_last;
unsigned int temp[2];
temp[0] = sqrt(MAX);
while(count <= temp[0]){
if(prime_list == NULL){
prime_list = (integer_list_t *)calloc(1,sizeof(integer_list_t));
prime_list->integer = count;
prime_list_last = prime_list;
}
else{
prime_list_temp = prime_list;
temp[1] = sqrt(count);
while(1){
if(count%prime_list_temp->integer == 0){
break;
}
if(prime_list_temp->next && temp[1] > prime_list_temp->integer){
prime_list_temp = prime_list_temp->next;
}
else{
prime_list_last->next = (integer_list_t *)calloc(1,sizeof(integer_list_t));
prime_list_last = prime_list_last->next;
prime_list_last->integer = count;
break;
}
}
}
count = count+2;
}
count = MIN;
if(!(count&1)){
count++;
}
if(count < 2){
fputs("2\n",stdout);
count = 3;
}
while(count < MAX){
prime_list_temp = prime_list;
temp[1] = sqrt(count);
while(1){
if(count%prime_list_temp->integer == 0 && count != prime_list_temp->integer){
break;
}
if(prime_list_temp->next && temp[1] > prime_list_temp->integer){
prime_list_temp = prime_list_temp->next;
}
else{
put_integer(count);
break;
}
}
count = count+2;
}
return 0;
}
Windows98ですらまともに動かない環境からWindows Vistaがサクサク動く環境に移りました。最近日記を書いていなかったのは気分の問題です。
という事で、入れるソフトウェアのリストを書いておく。色々足りないように見えるけど、多分気の所為。