zoukankan      html  css  js  c++  java
  • POJ1142 Smith Numbers 暴力+分解质因子

    题意:
    题目定义了一个史密斯数,这个数的定义是:
    一个合数的各个位置上加起来的和等于它的素因数所有位置上的数字加起来的和。
    比如:
    4937775=3∗5∗5∗65837
    4+9+3+7+7+7+5=3+5+5+6+5+8+3+7=42
    题目让你找出比n大的数中最小的这个数。另外:素数不是史密斯数
     
    题解:
    运用好递归,暴力枚举
     
    代码:
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<iostream>
     4 #include<algorithm>
     5 #include<math.h>
     6 using namespace std;
     7 typedef long long ll;
     8 const int maxn=100005;
     9 bool isprim(int x)
    10 {
    11     for(int i=2;i<=sqrt(x);++i)
    12     {
    13         if(x%i==0) return 0;
    14     }
    15     return 1;
    16 }
    17 int get_sum(int x)
    18 {
    19     int ans=0;
    20     while(x)
    21     {
    22         ans+=x%10;
    23         x/=10;
    24     }
    25     return ans;
    26 }
    27 int digui(int x)
    28 {
    29     int temp=sqrt(x);
    30     if(isprim(x))
    31         return get_sum(x);
    32     else
    33     {
    34         for(int i=2;i<=temp;++i)  //这个for循环作用就是找一个x的因子
    35         {
    36             if(x%i==0)
    37                 return digui(i)+digui(x/i);
    38         }
    39     }
    40 }
    41 int main()
    42 {
    43     int n;
    44     while(~scanf("%d",&n) && n)
    45     {
    46         while(n++)
    47         {
    48             if(!isprim(n) && digui(n)==get_sum(n))
    49                 break;
    50         }
    51         printf("%d
    ",n);
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    最近写代码的风格,请帮忙分析下优缺点
    jQuery的回调管理机制(三)
    jQuery的回调管理机制(二)
    jQuery的回调管理机制
    iOS组件化
    iOS内存泄漏检测及分析
    iOS 路由
    iOS https抓包工作记录
    第二章 算法入门
    第一章 算法在计算中的作用
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/12604973.html
Copyright © 2011-2022 走看看