演算法小技巧

2021-10-03 15:30:19 字數 673 閱讀 2250

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...