第16講 素数探索
第3話 素数探索プログラム例
前話解答例
A
#include<iostream>
#include<math.h>
using namespace std;
void f();
char sh(int i);
void main(){
   f();
   cout<<"プロジェクト終了"<<endl;
}
void f(){
   int i,j,cn=0;
   for(i=2;i<101;i++){
     if(sh(i)==1){
        if(cn%10==0 && cn>0)cout<<endl;
        cn++;
        cout<<i<<" ";
     }
   }
   cout<<endl<<"素数は"<<cn<<"個できました。"<<endl;
}
char sh(int i){
   if(i==2)return(1);
   if(i==3)return(1);
   if(i%2==0)return(0);
   double w;
   w=sqrt((double)i);
   int j;
   for(j=3;j<=w;j+=2){
     if(i%j==0)return(0);
   }
   return(1);
}
ダウンロード参考添付ファイル

こんな単純なプログラムでも皆さんかなり悩んだと思います
もし、簡単にできたとしたらあなたは天才ですよ。

素数を判定するとき、
奇数で割ってきていますが、
実は、素数で割れば十分です。
例えば、241が素数であることを判定するには、
3,5,7,11,13
で十分です。
3で割り切れなければ、もちろん9では割り切れませんよね。
そこで、素数で割っていくように改良したいと思います。
この改良を行う前に、改良のこうかを調べるために、
計算にかかった時間を計測できるようにして下さい。
時間計測は、
第9講 関数の再帰的使用
第10話 関数の再帰的使用による汎用的魔方陣自動生成ソフト非グローバル版小改良

を参考にして下さい。
また、1から100まですと、0秒と出てしまいますから
1から100000までに変更して下さい。
y

第2話へ
 第4話へ

a

eclipse c++ 入門講義第1部へ

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ