素数チェック
-
素数は、1かその数でしか割ることができないので、その方法でチェックします。ただし、ルートその数まで試して割れなければ素数と判断してよいとしてください
#include <iostream> #include <math.h> using namespace std; int main(){ int cd; int dc; int fc; cout << "2から32768までの整数を入力してください\n"; cin >> cd; if (cd <= 1) { cout << cd << "は素数ではありません\n"; } else { dc = 0; fc = (int)sqrt(cd); cout << "fc=" << fc << endl; for(int i=1; i<=fc;i++) { if ((cd % i)==0) { dc++; } if (dc>1) break; } if(dc==1) { cout << cd << "は素数です\n"; } else { cout << cd << "は素数ではありません\n";; } } }
1から順に割っていき、ルートその数までやって割れたカウントが1ならば素数としています