91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中約數定理的實例詳解

發布時間:2020-10-07 07:45:55 來源:腳本之家 閱讀:161 作者:lqh 欄目:編程語言

C++中約數定理的實例詳解

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

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

用這個定理求一個數的約數個數是非常快的,貼出一道訓練題目:

hdu 1492 -求約數的個數

貼出代碼:

//約數定理的 
#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; 
} 

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栾川县| 娄底市| 兴义市| 堆龙德庆县| 临江市| 师宗县| 仁寿县| 镇宁| 博湖县| 门源| 嘉善县| 鞍山市| 当涂县| 桓仁| 大邑县| 栖霞市| 新巴尔虎右旗| 台湾省| 松滋市| 瓦房店市| 航空| 寿宁县| 洛扎县| 新邵县| 乐东| 西昌市| 乐清市| 东莞市| 西盟| 额济纳旗| 登封市| 凤凰县| 昌邑市| 古田县| 通许县| 虹口区| 南乐县| 大洼县| 呼伦贝尔市| 张北县| 牙克石市|