LightOJ 1341 因數分解

2021-08-15 04:32:36 字數 641 閱讀 5936

題意:求區間[a,b]中b的因數對數有幾個,[x,y]和[y,x]算一對。

因為x和y的範圍是1e12,那麼我們根據唯一分解定理,只需要求1到1e6範圍內的質因數即可。

然後根據乘法原理:ans=ans*(質因數指數+1);最後ans除以2,就是b的所有因數對數。

然後用ans減去,小於a的對數就是我們要求的答案。

#include #include #include #include #include using namespace std;

typedef long long ll;

ll a[1100006];

ll prime[1000006];

ll num=0;

void init()

a[1]=1;

a[2]=0;

for(ll i=2;i<=1000006;i++)

if(!a[i]) prime[num++]=i;

}ll solve(long long l,long long r,long long &ans)

int main()

printf("case %d: %lld\n",cas++,ans);

} }return 0;

}

Lightoj 1341 質因子分解

題意 給出乙個長方形的面積,然後求長和寬都不能小於m的方案數。思路 先對這個面積進行質因子分解,得到這個數的所有的因子數,然後因為是不能是正方形,所以他能組成的方案書為因子數 2,要得到大於等於m的話,直接減去小於m的數。注意剛開始要判斷m m 是否是小於等於n,這樣的話m就小於等於1e6了,不會超...

質因數分解

題目16 將乙個正整數分解質因數。例如 輸入90,列印出90 2 3 3 5。程式分析 對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完 成 1 如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。2 如果n k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新...

質因數分解

短除法 求乙個數分解質因數,要從最小的質數除起,一直除到結果為質數為止。分解質因數的算式的叫短除法 和除法的性質差不多,還可以用來求多個個數的公因式 求 最大公因數的一種方法,也可用來求 最小公倍數。求幾個數最大公因數 的方法,開始時用觀察比較的方法,即 先把每個數的因數找出來,然後再找出公因數,最...