bool pdn(int x)
if (num == x) return true;
else return false;
}
1.普通方法 o(sqrt(n))bool isprime(int x)
2.線性篩 o(n)
適用於範圍不是特別大,查詢次數多的
const int maxn = 1e6 + 6;
int flag[maxn + 1], prime[maxn + 1], pnum;//flag[n] 表示n是否是素數,1是素數,0不是
//prime 中是所有的素數按從小到大排列、
//pnum 表示素數的個數
void createprime()
//遍歷篩去所有最大因數是i的合數
for (int i = 2; i <= maxn; i++)
//遍歷已知素數表中比i的最小素因數小的素數,並篩去合數
for (int j = 0; j < pnum && prime[j] * i <= maxn; j++)
}}int main()
int n, m;
sc(n);
while (n--)
}
JAVA 演算法小技巧
原貼 1.巧用陣列下標 陣列的下標是乙個隱含的很有用的陣列,特別是在統計一些數字,或者判斷一些整型數是否出現過的時候。例如,給你一串字母,讓你判斷這些字母出現的次數時,我們就可以把這些字母作為下標,在遍歷的時候,如果字母a遍歷到,則arr a 就可以加1了,即 arr a 通過這種巧用下標的方法,我...
演算法小技巧 取模的技巧
個人筆記,有點毛,能看懂就看,呵呵。寫乙個方法 實現迴圈效果 不用if語句 int i 0 1 6 的迴圈。int fun int max int main 傳統寫法 1 6 的迴圈。int fun int max 取模應用 一段時間內變化指定次數。變化週期相同。int n time 3 for f...
刷題演算法小技巧
1.大數取餘 對於較大數快速取餘 引數 char s 為儲存大數的陣列 modnumber 為mod long long modnumber char s,int modnumber return sum 2.快速冪 極大數 取餘 對於較大數快速取餘 引數 a的b次方 對 c 取餘 long lon...