国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中約數(shù)定理的實例詳解

2020-01-26 14:01:36
字體:
供稿:網(wǎng)友

C++中約數(shù)定理的實例詳解

對于一個大于1正整數(shù)n可以分解質(zhì)因數(shù):n = p1^a1*p2^a2*......pk^ak,則n的正約數(shù)的個數(shù)就是  :(a1+1)*(a2+1)*......*(ak+1)

其中a1、a2、a3…ak是p1、p2、p3,…pk的指數(shù)。

用這個定理求一個數(shù)的約數(shù)個數(shù)是非常快的,貼出一道訓(xùn)練題目:

hdu 1492 -求約數(shù)的個數(shù)

貼出代碼:

//約數(shù)定理的 #include <iostream> #include <algorithm> #include <iterator> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <vector> #include <queue> #include <set> using namespace std;  #define ll long long  int main() {   // freopen("s.cpp","r",stdin);    ll n;   while(scanf("%lld",&n) != EOF)   {     if(!n) break;      ll sum = 1;     /* x = p1^a1*p2^a2*p3^a3...pk^ak     yueshu = (a1+1)*(a2+1)*...*(ak+1)*/     for(ll i = 2; i*i <= n; i++){       int cou = 0;       if(n%i==0){         cou = 1;         n /= i;         while(n%i==0){           cou++;           n /= i;         }       }       if(cou != 0){         sum = sum*(cou+1);       }     }     if(n != 1){       sum = sum*2;     }     if(sum==1 && n==1){       sum = 1;     }     printf("%lld/n",sum);   }   return 0; } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大余县| 恩施市| 大同市| 萍乡市| 德化县| 徐州市| 嘉鱼县| 隆子县| 渭源县| 平邑县| 罗山县| 土默特左旗| 民丰县| 英吉沙县| 蒙自县| 大邑县| 旌德县| 滦南县| 南昌县| 汝城县| 鲜城| 瑞金市| 正阳县| 永胜县| 鄯善县| 靖州| 四平市| 丰镇市| 邯郸市| 曲麻莱县| 盐池县| 德化县| 芒康县| 黄梅县| 玉门市| 横峰县| 禹州市| 驻马店市| 桓台县| 保德县| 称多县|