zoukankan      html  css  js  c++  java
  • hdoj 4432 Sum of divisors

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4432

    解题思路:简单的进制转换

      1 /**************************************************************************
      2 user_id: SCNU20102200088
      3 problem_id: hdoj 4432
      4 problem_name: Sum of divisors
      5 **************************************************************************/
      6 
      7 #include <algorithm>
      8 #include <iostream>
      9 #include <iterator>
     10 #include <iomanip>
     11 #include <sstream>
     12 #include <fstream>
     13 #include <cstring>
     14 #include <cstdlib>
     15 #include <climits>
     16 #include <bitset>
     17 #include <string>
     18 #include <vector>
     19 #include <cstdio>
     20 #include <cctype>
     21 #include <ctime>
     22 #include <cmath>
     23 #include <queue>
     24 #include <stack>
     25 #include <list>
     26 #include <set>
     27 #include <map>
     28 using namespace std;
     29 
     30 //线段树
     31 #define lson l,m,rt<<1
     32 #define rson m+1,r,rt<<1|1
     33 
     34 //手工扩展栈
     35 #pragma comment(linker,"/STACK:102400000,102400000")
     36 
     37 const double EPS=1e-9;
     38 const double PI=acos(-1.0);
     39 const double E=2.7182818284590452353602874713526;  //自然对数底数
     40 const double R=0.5772156649015328606065120900824;  //欧拉常数:(1+1/2+...+1/n)-ln(n)
     41 
     42 const int x4[]={-1,0,1,0};
     43 const int y4[]={0,1,0,-1};
     44 const int x8[]={-1,-1,0,1,1,1,0,-1};
     45 const int y8[]={0,1,1,1,0,-1,-1,-1};
     46 
     47 typedef long long LL;
     48 
     49 typedef int T;
     50 T max(T a,T b){ return a>b? a:b; }
     51 T min(T a,T b){ return a<b? a:b; }
     52 T gcd(T a,T b){ return b==0? a:gcd(b,a%b); }
     53 T lcm(T a,T b){ return a/gcd(a,b)*b; }
     54 
     55 ///////////////////////////////////////////////////////////////////////////
     56 //Add Code:
     57 ///////////////////////////////////////////////////////////////////////////
     58 
     59 int main(){
     60     std::ios::sync_with_stdio(false);
     61     //freopen("in.txt","r",stdin);
     62     //freopen("out.txt","w",stdout);
     63     ///////////////////////////////////////////////////////////////////////
     64     //Add Code:
     65     int n,m,i,a[16];
     66     char ch[17]="0123456789ABCDEF";
     67     for(i=0;i<16;i++) a[i]=i*i;
     68     while(scanf("%d%d",&n,&m)!=EOF){
     69         int ans=0;
     70         for(i=1;i<=sqrt(n+0.0);i++){
     71             if(n%i==0){
     72                 int x=i,y=n/i;
     73                 while(x){
     74                     ans+=a[x%m];
     75                     x/=m;
     76                 }
     77                 if(i!=y){
     78                     while(y){
     79                         ans+=a[y%m];
     80                         y/=m;
     81                     }
     82                 }
     83             }
     84         }
     85         int num=0,res[1000];
     86         while(ans){
     87             res[num++]=ans%m;
     88             ans/=m;
     89         }
     90         for(i=num-1;i>=0;i--) printf("%c",ch[res[i]]);
     91         printf("
    ");
     92     }
     93     ///////////////////////////////////////////////////////////////////////
     94     return 0;
     95 }
     96 
     97 /**************************************************************************
     98 Testcase:
     99 Input:
    100 10 2
    101 30 5
    102 Output:
    103 110
    104 112
    105 **************************************************************************/
  • 相关阅读:
    解决Nginx不支持pathinfo的问题
    PHP获取当前服务器信息的基本语句
    权重结构的加权排序算法
    《深入探讨C++对象模型》笔记 二
    链表的一些常用操作
    invalidate作用
    GetMessage()和PeekMessage()区别
    C语言程序编译的内存分配
    assert() 宏用法
    开始写博客
  • 原文地址:https://www.cnblogs.com/linqiuwei/p/3363551.html
Copyright © 2011-2022 走看看