可以把質數的倍數都去掉
int p[1045]={0}
for(int i=2;i<p[1045];i++){
if(p[i]==0){
for(int j=i+i;j<1045;j+=i)//將i的倍數設定成不是質數
{
p[j]=1;
}
}
}
只要檢查到數字的根號就好了 ex: |--| 36 |--| |--| 1 * 36 |--| |--| 2 * 18 |--| |--| 3 * 12 |--| |--| 4 * 9 |--| |--| 6 * 6 |--| //從這裡開始後面都重複了 |--| 9 * 4 |--| |--| 12 * 3 |--| |--| 18 * 2 |--| |--| 36 * 1 |--| zzzzzz待補充
void fib(int n){
if(n==0||n==1) return 1;
else return fib(n-1)+fib(n-2);
}
long long n,a[89]={1,1} //a陣列範圍視情況定,第0項的初始值也是
for(int i=2;i<89;i++){
a[i]=a[i-1]+a[i-2];
}