- C言語なら俺に聞け
223 :デフォルトの名無しさん[sage]:2014/04/25(金) 16:47:47.01 ID:fQTWxI7Q - #include <stdio.h>
#include <stdlib.h> //pickup() #include <dirent.h> //countfile() int main(){ int n; for(n = 227; n < 359 ; n++ ) // nの上限が n<228以上でバグ n = 227の時に動作不良 { printf("judging %d\n",n); judge(n); usleep(50000); } return 0; } int judge(int n) // 整数nが素数かどうか判断 { int i = 1; int p; p = pickup(i); while( ( n % p ) != 0 ) { if(p >= n/2) { break; } else{ i ++; p = pickup(i);} } if( ( n % p ) != 0 ) { write(n); printf("%d is prime number.\n", n); return 1; } else { return 0; } }//judge is end int pickup(int k) //k番目の素数を引き渡す { int pu; char primefile[100]; sprintf(primefile, "./prime/prime%d.txt", k);
| - C言語なら俺に聞け
224 :デフォルトの名無しさん[sage]:2014/04/25(金) 16:49:01.80 ID:fQTWxI7Q - FILE *fp;
fp = fopen(primefile, "r"); if( fp == NULL ) { printf("file open is fale."); } else { fgets(primefile, 99, fp); pu = atof(primefile); }return pu; } //pickup end write(int n)//整数nを次のpirmeに書き込む { FILE *fp; char filename[256]; int c = count(0); c = c + 1; sprintf(filename, "./prime/prime%d.txt", c); fp = fopen(filename, "w"); fprintf(fp, "%d", n); fclose(fp); }//write is end int count(void)// ./prime内にあるファイルの数を数える{ DIR *dir; struct dirent *dp; char path[10] = "./prime/";//対象フォルダを指定 dir=opendir(path); int i = 0; for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)) {// printf("%s\n",dp->d_name); i = i + 1; } closedir(dir); i = i - 2; return i; }//count is end
| - C言語なら俺に聞け
225 :デフォルトの名無しさん[sage]:2014/04/25(金) 16:51:58.43 ID:fQTWxI7Q - 見難くてすいません。
やはりjudge()に問題があるのでしょうか?
|
|