Elec Days

電子工作やelectric的なこと、日常の出来事について、紹介していきます。
Elec Days TOP  >  素数

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

【C言語】素数を求めるプログラム Ver.3

こんにちは。

いま、渋谷駅にニンテンドー3DSが置いてあるんですけど、一応立体に見えないことはないですね。
ただ、ソフトがいけないのか、画面がまだまだなのか、CGが悪いのか、どれだか分りませんですけど、ちょっといまいち。
本物の3Dはあと数年待ちましょう。


で、【C言語】素数を求めるプログラム_改良版 をもうちょっと改良しました。
スポンサーサイト
[ 2011/02/02 20:24 ] プログラミング 素数 | TB(0) | CM(0)

【C言語】素数を求めるプログラム_改良版

こんばんは

なんか今日はオバマさんが大統領になった日らしいですね。


というのは置いといて、前の 【C言語】素数を求めるプログラムの改良版を作ってみました。

追加した機能は、素数の計算をプログラムを終了させずに複数回計算できるようにする、といううことです。

ソースファイル(sosu-a.c)
※メモ帳でも開くことができます。
 ブラウザーで表示すると表示が崩れる可能性がありますので、ダウンロードしてからご覧ください。

<sosu-a.c>
#include <stdio.h>
#include <time.h>

/* sosu関数の宣言 */
int sosu(void);


int main(void)//素数の計算の繰り返しを行う
{
int h = 1;
int v;

while(h > 0){
sosu();

printf("プログラムを続行して、再び計算をやらせますか?\nもう1度計算をさせる場合には半角で0、プログラムを終了させるには半角で1を入力してください。\n");
scanf("%d", &v);

if(v==1){
printf("プログラムを終了しました。\n");
return 1;
}
else{
printf("プログラムを続行します…\n\n");
}
}

return 0;
}


/* sosu関数の定義 */
int sosu(void)
{
int x;
int y;

int i;

int num[10000];
int m = 0;

int a = 0;

int b;

FILE *fp;

time_t t;

char str[50];


printf("素数を求める範囲を入力してください。\n");
printf("最小値\n");

scanf("%d", &x);

printf("最大値\n");

scanf("%d", &y);

for(i=x; i<=y; i++){
int z;

for(z=2; z<i; z++){
if(i%z == 0)
break;
else if(z == i-1){
num[m] = i;
m++;
}
}
}

printf("選択された範囲の中に素数は%d個ありました。\n", m);

num[m++] = 0;

while(num[a] != 0){
printf("%d\n", num[a]);
a++;
}

printf("素数をファイルに出力しますか?出力する場合は半角で0を入力してください。出力させない場合には半角で1を入力してくだ

さい。\n(ファイルはこの実行ファイルがあるフォルダーに作られます。)\n");

scanf("%d", &b);

if(b == 0){
sprintf(str, "%ld", time(&t));
printf("%s\n", str);
fp = fopen(str, "w");

if(fp == NULL){
printf("ファイルを作成できませんでした。\n");
return 1;
}
else{
a = 0;

fprintf(fp, "選択された範囲の中に素数は%d個ありました。\n", m);

num[m++] = 0;

while(num[a] != 0){
fprintf(fp, "%d\n", num[a]);
a++;
}
fclose(fp);
}
}
}


実行ファイル(sosu-a.exe)
※ダブルクリックでも実行することができます。


※実行ファイルの使い方については、プログラムの使い方をご覧ください。


では

追記(2/2)
【C言語】素数を求めるプログラム Ver.3 (現在最新) を追加しました。
[ 2011/01/20 20:43 ] プログラミング 素数 | TB(0) | CM(3)

【C言語】素数を求めるプログラム「解説」

こんにちは

今日は、前回投稿したプログラムの説明をしたいと思います。
「こんなの読まなくても理解できるぜ!」という方は、読み飛ばしてもかまいません。
(参考:【C言語】素数を求めるプログラム
#include <stdio.h>
#include <time.h>
 ↑
これは、ファイルの読み込みを宣言しているところです。


int main(void)
{
   int x;
   int y;

   int i;

   int num[10000];
   int m = 0;

   int a = 0;

   int b;

   FILE *fp;

   time_t t;

   char str[50];
 ↑ ここは、変数を宣言しています。
一番上の「int main(void)」は、「ここからはプログラムの主な場所だよ」ということを言っています。


   for(i=x; i<=y; i++){
      int z;

      for(z=2; z          if(i%z == 0)
            break;
         else if(z == i-1){
            num[m] = i;
            m++;
         }
      }
   }
[ 2011/01/12 18:31 ] プログラミング 素数 | TB(0) | CM(0)

【C言語】素数を求めるプログラム

こんばんは。


今日は素数を求めるプログラムを作ってみました。


実行ファイル(sosu.exe)

※本プログラムは、Microsoft VisoalC++ 2008がインストールされていないと実行できません。

その場合、【C言語】素数を求めるプログラム Ver.3 にある、「ライブラリ付属」のプログラムをご利用ください。


ソースファイル(sosu.c)

<sosu.c>
#include <stdio.h>
#include <time.h>

int main(void)
{
int x;
int y;

int i;

int num[10000];
int m = 0;

int a = 0;

int b;

FILE *fp;

time_t t;

char str[50];

printf("素数を求める範囲を入力してください。\n");
printf("最小値\n");

scanf("%d", &x);

printf("最大値\n");

scanf("%d", &y);

for(i=x; i<=y; i++){
int z;

for(z=2; z<i; z++){
if(i%z == 0)
break;
else if(z == i-1){
num[m] = i;
m++;
}
}
}

printf("選択された範囲の中に素数は%d個ありました。\n", m);

num[m++] = 0;

while(num[a] != 0){
printf("%d\n", num[a]);
a++;
}

printf("素数をファイルに出力しますか?出力する場合は半角で0を入力してください。プログラムを終了させるには半角で1を入力してください。\n(ファイルはこの実行ファイルがあるフォルダーに作られます。)\n");

scanf("%d", &b);

if(b == 0){
sprintf(str, "%ld", time(&t));
printf("%s\n", str);
fp = fopen(str, "w");

if(fp == NULL){
printf("ファイルを作成できませんでした。\n");
return 1;
}
else{
a = 0;

fprintf(fp, "選択された範囲の中に素数は%d個ありました。\n", m);

num[m++] = 0;

while(num[a] != 0){
fprintf(fp, "%d\n", num[a]);
a++;
}
fclose(fp);
}
}

printf("プログラムを終了しました。\n");

return 0;
}


※ソースファイルはメモ帳で読むことができます。
ブラウザーで表示すると表示が崩れる可能性がありますので、ダウンロードしてからご覧ください。


このプログラムは、選択した範囲の中の素数を求めます。

範囲の最小値と最大値を入力することによって範囲を設定します。



また、結果をファイルに出力することもできます。

生成されるファイル名はその時刻に関する数列です。これは、ファイル名の重複を防ぐためです。

フィル名はご自由に変更してお使いください。


※このプログラムはコマンドプロンプトを使って実行します。ダブルクリックでは使えません。

ダブルクリックで開けました。ダブルクリックのほうがずっと楽です。

また、出力されたファイルはメモ帳を使って読んでください。


プログラムの実行の仕方はプログラムの使い方をご覧ください。


ではまた


追記
【C言語】素数を求めるプログラム「解説」を追加しました。


さらに追記
【C言語】素数を求めるプログラム_改良版を追加しました。

どうぞご参照ください。


(2/2)
【C言語】素数を求めるプログラム Ver.3 (現在最新) を追加しました。
[ 2011/01/08 21:19 ] プログラミング 素数 | TB(0) | CM(0)
プロフィール

elecho

Author:elecho
 
ElecDays にようこそ!!

趣味は、電子的なもの(電子工作やコンピュータ)なので、そういうものについて書くと思います。
あと、学生です。

よろしくお願いします。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。