素数を数えて落ち着こうについたコメント

17  名前::2011/09/07(水) 01:52:23  ID:toi0aY8h PCからの投稿
※14
慣例に基づき1行=80文字換算でやってみた。

#include<stdio.h>
#include<stdlib.h>
int main(int c,char *v[]){long n=0;long i=2;int r=1;if(c<2){printf("usage: %s n"
"umber\n",v[0]);return -1;}n=atol(v[1]);if(n>=(((unsigned long)-1L)>>1)){puts(
"given number is too large\n");return 2;}else if(i<n&&n%i==0)r=0;else{i++;while
(i<n){if(n%i==0){r=0;break;}i+=2;}}if(!r){printf("%ld is divisible by %ld.\n",n
,i);}else{printf( "%ld can't be divisible by any prime number.\n",n);}return r;}

ただ、元のプログラムのアルゴリズムが単純すぎ。
せめて終了条件を平方根にするとか、もう少し工夫が欲しい。

夜中に何やっているんだろうオレ
15 イイ!コメント
コピペに戻る