特別設置【每日一問】專欄,對專業課--C/C++的複習的學習成果進行實踐檢驗以及知識拓展,裂變自己接觸和學習過的知識及技巧;主要是理論和實踐相結合,以基礎知識為主,實踐操作為輔,保證學習效果,和大家一起回顧知識,共同進步,加油!
特別提示:【每日一問】欄目包括但不限於【今日主題】、【實踐演練】、【知識裂變】等模塊,內容比較基礎,適合新手學習以及熟手進行知識回顧,大神勿噴,請自動繞道,謝謝!
如何判斷一個數是否是素數?
如何判斷一個範圍內的哪些數是素數並具體輸出素數,同時輸出個數?
原理:素數(質數),在一般領域,對正整數n,如果用2到根號下n之間的所有整數去除,均無法整除,則n為素數。
即:素數大於等於2,不能被它本身和1以外的數整除。
開發環境:Win10,VS2015
具體程序如下:
/*@Filename:main.c@author:Bagman@date :2020.07.10@function :本程序主要關於求素數問題。 素數(質數):在一般領域,對正整數n,如果用2到根號下n之間的所有整數去除, 均無法整除,則n為質數。 質數大於等於2,不能被它本身和1以外的數整除*/
#include "stdafx.h"#include <iostream>#include <iomanip>using namespace std;
int main(){ bool primeNumberCheck(int num); int findPrimeNumber(int num1, int num2);
bool select,prime; int number,ftnum,ednum; int prCount = 0;
cout << "單個數據判斷輸入1,多個輸入0" << endl; cin >> select;
if (select) { cout << "請輸入一個數:" << endl; cin >> number; prime = primeNumberCheck(number); if (prime) { cout << number << "是素數" << endl; } else { cout << number << "不是素數" << endl; } } else { cout << "請輸入數的範圍:" << endl; cin >> ftnum >> ednum; cout << "素數分別為:" << endl; prCount = findPrimeNumber(ftnum, ednum); cout << endl << "素數個數:" << prCount << endl; }
system("pause"); return 0;}
/*輸入一個整數,判斷是不是素數*/bool primeNumberCheck(int num){ bool flag = true;// 開始假設是素數 int i,K; K = int(sqrt(num));// 根號下num
for (i = 2; i <= K; i++) { if (num % i == 0) { flag = false; break; } else// 此處可省略 { flag = true; } } return flag;}
/*輸入一個整數範圍,判斷有哪些數是素數並輸出*/int findPrimeNumber(int num1, int num2){ bool flag = true;// 開始假設是素數 int m, K; // m-數,K-根號下num int count = 0; //素數個數
// 判斷m是否是素數,m範圍為num1-num2 for (m = num1; m <= num2; m++) { K = int(sqrt(m));// 根號下num for (int i = 2; i <= K; i++) { if (m % i == 0) { flag = false; break; } else// 此處可省略 { flag = true; } } if (flag) { cout << setw(6) << m; count++; }
if (count % 10 == 0) { cout << endl; } }
return count;}單個素數的判斷具體執行如下:
多個素數的判斷具體執行如下:
每日一問--運算符:運算符優先級及結合性如下:
優先級
運算符
名稱或含義
使用形式
結合方向
說明
1
[]
數組下標
數組名[整型表達式]
左到右
()
圓括號
(表達式)/函數名(形參表)
.
成員選擇(對象)
對象.成員名
->
成員選擇(指針)
對象指針->成員名
2
-
負號運算符
-算術類型表達式
右到左
單目運算符
(type)
強制類型轉換
(純量數據類型)純量表達式
++
自增運算符
++純量類型可修改左值表達式
單目運算符
--
自減運算符
--純量類型可修改左值表達式
單目運算符
*
取值運算符
*指針類型表達式
單目運算符
&
取地址運算符
&表達式
單目運算符
!
邏輯非運算符
!純量類型表達式
單目運算符
~
按位取反運算符
~整型表達式
單目運算符
sizeof
長度運算符
sizeof 表達式
sizeof(類型)
3/
除
表達式/表達式
左到右雙目運算符
*
乘
表達式*表達式
雙目運算符
%
餘數(取模)
整型表達式%整型表達式
雙目運算符
4
+
加
表達式+表達式
左到右
雙目運算符
-
減
表達式-表達式
雙目運算符
5
<<
左移
整型表達式<<整型表達式
左到右
雙目運算符
>>
右移
整型表達式>>整型表達式
雙目運算符
6
>
大於
表達式>表達式
左到右
雙目運算符
>=
大於等於
表達式>=表達式
雙目運算符
<
小於
表達式<表達式
雙目運算符
<=
小於等於
表達式<=表達式
雙目運算符
7
==
等於
表達式==表達式
左到右
雙目運算符
!=
不等於
表達式!= 表達式
雙目運算符
8
&
按位與
整型表達式&整型表達式
左到右
雙目運算符
9
^
按位異或
整型表達式^整型表達式
左到右
雙目運算符
10
|
按位或
整型表達式|整型表達式
左到右
雙目運算符
11
&&
邏輯與
表達式&&表達式
左到右
雙目運算符
12
||
邏輯或
表達式||表達式
左到右
雙目運算符
13
?:
條件運算符
表達式1? 表達式2: 表達式3
右到左
三目運算符
14
=
賦值運算符
可修改左值表達式=表達式
右到左
/=
除後賦值
可修改左值表達式/=表達式
*=
乘後賦值
可修改左值表達式*=表達式
%=
取模後賦值
可修改左值表達式%=表達式
+=
加後賦值
可修改左值表達式+=表達式
-=
減後賦值
可修改左值表達式-=表達式
<<=
左移後賦值
可修改左值表達式<<=表達式
>>=
右移後賦值
可修改左值表達式>>=表達式
&=
按位與後賦值
可修改左值表達式&=表達式
^=
按位異或後賦值
可修改左值表達式^=表達式
|=
按位或後賦值
可修改左值表達式|=表達式
15
,
逗號運算符
表達式,表達式,…
左到右
從左向右順序結合
猜你喜歡:
C/C++每日一問--進位轉換
C/C++每日一問--運算符
掃描二維碼關注我
置頂/星標公眾號,和我一起學習吧
碼字不易,點擊在看分享閱讀吧,感謝!
Long-press QR code to transfer me a reward
真心對待每一次學習
As required by Apple's new policy, the Reward feature has been disabled on Weixin for iOS. You can still reward an Official Account by transferring money via QR code.