失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 求一个数所有因子的个数 因子和

求一个数所有因子的个数 因子和

时间:2022-05-29 20:12:40

相关推荐

求一个数所有因子的个数 因子和

B站学习视频(图片来源)

1.所有因子个数

如果一个数是因数,就不断除这个数,保存这个因子次方的数 temp++;

运用所有因子个数计算公式(见上图),保存因子个数的 ans不断乘( temp+1 )。

注意 :

当最后,在 x 不断除因数得到的值有两种情况:

x == 1,这说明 x 没有其他因子了。x != 1, 这时 x 为其一个素数因子(且这个因子大于 根号x ),所以最后再乘(1+1)。

代码学习链接

ll dcpCount(ll x){//所有因子的个数(包括1) ll ans = 1;for(ll i = 2; i * i <= x; i++){if(x % i == 0){ll temp = 0;while(x % i == 0){x /= i;temp++;}ans *= (temp+1);//运用上面的公式,计算所有因子的个数}}if(x > 1) ans *= 2;return ans;}--------------------- 作者:sxh759151483 来源:CSDN 原文:/sxh759151483/article/details/80137459 版权声明:本文为博主原创文章,转载请附上博文链接!

2.所有因子因子和 (包括1)

思想同上,也是公式的代码实现

图1.

待补

图一这个公式是等比数列求和;

ll dcpSum(ll x){//所有因子的和(包括1)ll ans = 1;for(ll i = 2; i * i <= x; i++){if(x % i == 0){ll temp = 1;while(x % i == 0){x /= i;temp *= i;}ans *= (temp * i - 1) / (i - 1);//对每一个素数因子按图一公式求积。}}if(x > 1) ans *= (1 + x);return ans;}--------------------- 作者:sxh759151483 来源:CSDN 原文:/sxh759151483/article/details/80137459 版权声明:本文为博主原创文章,转载请附上博文链接!

如果觉得《求一个数所有因子的个数 因子和》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。