zoukankan      html  css  js  c++  java
  • 分解质因数

    Smith Numbers http://poj.org/problem?id=1142 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=133

     1 #include<cstdio>
     2 int fac[128];
     3 int find_fac(int n){//对n分解质因数,返回质因数个数
     4     int cnt=0;
     5     for(int i=2;i*i<=n;i+=2){
     6         while(!(n%i)){
     7             n/=i;
     8             fac[cnt++]=i;
     9         }
    10         if(i==2) i--;
    11     }
    12     if(n>1) fac[cnt++]=n;
    13     return cnt;
    14 }
    15 int div(int x){
    16     int res=0;
    17     while(x){
    18         res+=x%10;
    19         x/=10;
    20     }
    21     return res;
    22 }
    23 bool judge(int n){
    24     int lf=find_fac(n);
    25     if(lf==1) return false;
    26     int sum=0;
    27     for(int i=0;i<lf;i++){
    28         sum+=div(fac[i]);
    29     }
    30     if(sum==div(n)) return true;
    31     return false;
    32 }
    33 int main(){
    34     int n;
    35     while(~scanf("%d",&n),n){
    36         while(!judge(++n));
    37         printf("%d
    ",n);
    38     }
    39     return 0;
    40 }
    View Code

     Perfection http://poj.org/problem?id=1528

    求所有除数的和

     1 #include<cstdio>
     2 int ds_func(int n){//求n所有除数的和
     3     int ret=1,m=n,t;
     4     for(int i=2;i*i<=n;i+=(i==2)?1:2){
     5         if(!(n%i)){
     6             t=i*i;
     7             n/=i;
     8             while(!(n%i)){
     9                 t*=i;
    10                 n/=i;
    11             }
    12             ret*=(t-1)/(i-1);
    13         }
    14     }
    15     return n>1?ret*(n+1):ret;
    16 }
    17 int main() {
    18     int n;
    19     puts("PERFECTION OUTPUT");
    20     while(~scanf("%d",&n),n){
    21         printf("%5d",n);
    22         int sum=ds_func(n);
    23         if(sum>n+n) puts("  ABUNDANT");
    24         else if(sum==n+n) puts("  PERFECT");
    25         else puts("  DEFICIENT");
    26     }
    27     puts("END OF OUTPUT");
    28     return 0;
    29 }
    View Code

    end

  • 相关阅读:
    第五次作业
    第四次作业
    Java实验二
    java第一次作业
    第十一次作业
    第十次作业
    第九次作业
    第八次作业
    第七次作业
    第六次作业
  • 原文地址:https://www.cnblogs.com/gaolzzxin/p/3889508.html
Copyright © 2011-2022 走看看