思考三秒鐘,注意1不是質數
質數(prime number)又稱素數,質數定義為在大於1的自然數中,除了1和它本身以外不再有其它因數。在前面學過的篩質數章節中我們已經接觸過質數了。2 3 5 7 是前4個質數。
合數就是非質數,每乙個合數都可以以唯一形式被寫成質數的乘積,即分解質因數。
例題1:求質數
給定n個正整數ai,判定每個數是否是質數。純暴力就可以了,注意優化輸入格式 第一行包含整數n。
接下來n行,每行包含乙個正整數ai。
輸出格式 共n行,其中第 i 行輸出第 i 個正整數ai是否為質數,是則輸出「yes」,否則輸出「no」。
資料範圍 1≤n≤100, 1≤ai≤2^31−1
輸入樣例:22
6輸出樣例:
yesno
#include
using
namespace std;
intmain()
}if(flag) cout <<
"yes"
"no"
<< endl;}}
}
注意:
for(int j = 2;j <= x / j; j ++)此處不建議使用如下方式
1、j<=sqrt(x);,呼叫函式浪費時間
2、不推薦 j*j<=x,因為x=2147483647會越界未完待續
例題2:分解質因數
給定n個正整數ai,將每個數分解質因數,並按照質因數從小到大的順序輸出每個質因數的底數和指數。題解概要,暴力列舉n的所有因子,然後寫成因子乘積形式。由於列舉的時候從2開始列舉,當列舉到i時,2到i-1的因子已經分解完成,所以這樣分解的因子一定是質因子,不存在合數的問題。輸入格式
第一行包含整數n。
接下來n行,每行包含乙個正整數ai。
輸出格式
對於每個正整數ai,按照從小到大的順序輸出其分解質因數後,每個質因數的底數和指數,每個底數和指數佔一行。
每個正整數的質因數全部輸出完畢後,輸出乙個空行。
資料範圍
1≤n≤100,
1≤ai≤2∗109
輸入樣例:26
8輸出樣例:
2 13 1
2 3
#include
using
namespace std;
intmain()
cout << j <<
" "
1) cout <" "<<
1
練習題
1、分解質因數
2、小b與燈泡
3、質數的和與積
4、projecteuler 7
5、projecteuler 37
6、1到n的最小公倍數
第2課 C 中的引用
1.引用定義與語法 引用可以看作乙個已經定義的變數的別名 引用的語法 type name var include int main int argc,char argv 列印結果 a 5,b 5,a 0x22fe54,b 0x22fe54 由於b就是a的引用,b引用a,那麼b就是a的別名,指代同一段...
第2課 掌握C
1.定義結構體和類時別忘記在最後加入 號!例如class point 2.include 與 include h 的區別 不查詢執行時目錄,查詢執行時目錄!3.類的定義中,如果未指明成員型別,則預設為private.而結構體中則預設為public.4.引用 引用經常用在函式的傳參上。另外數值交換函式...
NOIP初賽準備 第6課時
noip2014 問題求解 不重a4 4 兩重6 1 1 8 8 一重11 連續 3 a2 3不連續 a2 3 c3 288同11 noip2013 不定選2 快排 以第1個數為基準 會退化為o n 2 最壞情況 平均o nlogn 歸併 o nlogn 堆排序 o nlogn 桶排序 o kn k...