兩種方法,第一種是將所有的素數篩選出來,第二種直接迴圈就行了(第二種更加的高效)。
第一種方法其實就是先將素數篩選出來然後再計算,第二種是直接計算。
第一種的**
#includeusing namespace std;
const int max = 1e7+7;
bool prim[max];
vector ve;
//素數篩選
void pre_prim()}}
if(n!=1)
printf("%lld",n);
printf("\n");
}}
第二種方法的**:
#includeusing namespace std;
typedef long long ll;
int main()}}
if(n!=1)
printf("%lld",n);
printf("\n");
}return 0;
}
求乙個數的最小素因子外加快速分解質因子
這種方法使用與資料小於1e7,這種適用於分解1到n所有數的質因子,而且列印出來是從小到大排好序的 首先找到每個數的最小質因子,不停的除以最小素因子,只到x 1 如果是分解單個還是根號n複雜度的更好一點 include bits stdc h using namespace std typedef u...
找乙個數的因子個數,因子和
1.所有因子個數 如果乙個數是因數,就不斷除這個數,儲存這個因子次方的數 temp 運用所有因子個數計算公式 見上圖 儲存因子個數的 ans不斷乘 temp 1 注意 當最後,在 x 不斷除因數得到的值有兩種情況 x 1,這說明 x 沒有其他因子了。x 1,這時 x 為其乙個素數因子 且這個因子大於...
求乙個數的因子數及平方數判斷
對於乙個自然數n,都可以分解質因子得到如下形式 怎麼推出來的我也不知道。其中因子數包含自身和1 注意,若要使f n 為奇數,僅有一種可能,就是e1,e2.都為偶數時,總的因子數才為奇數,而若指數都為偶數,說明這個數必定是乙個完全平方數!判斷乙個數是否為平方數 根據數學的等差數列求和公式 由此可知 任...