zoukankan      html  css  js  c++  java
  • POJ 1142 Smith Numbers(分治法+质因数分解)

    http://poj.org/problem?id=1142

    题意:

    给出一个数n,求大于n的最小数,它满足各位数相加等于该数分解质因数的各位相加。

    思路:
    直接暴力。

     1 #include <iostream>  
     2 #include <cstring>  
     3 #include <algorithm>   
     4 #include <vector>
     5 #include <queue>
     6 #include <cmath>
     7 using namespace std;
     8 
     9 int n;
    10 
    11 int cacl(int x)
    12 {
    13     int sum = 0;
    14     while (x)
    15     {
    16         sum += x % 10;
    17         x /= 10;
    18     }
    19     return sum;
    20 }
    21 
    22 bool isprime(int x)
    23 {
    24     int m = sqrt(x + 0.5);
    25     for (int i = 2; i <= m; i++)
    26     {
    27         if (x%i == 0)  return false;
    28     }
    29     return true;
    30 }
    31 
    32 int solve(int x)
    33 {
    34     if (isprime(x))
    35         return cacl(x);
    36     else
    37     {
    38         int m = sqrt(x + 0.5);
    39         for (int i = m; i >1;i--)
    40         if (x%i == 0)
    41             return solve(i) + solve(x / i);
    42     }
    43 }
    44 
    45 int main()
    46 {
    47     //freopen("D:\input.txt", "r", stdin);
    48     while (~scanf("%d", &n) && n)
    49     {
    50         for (int i = n + 1;; i++)
    51         {
    52             if (!isprime(i) && cacl(i) == solve(i))
    53             {
    54                 printf("%d
    ", i);
    55                 break;
    56             }
    57         }
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    借阅的列表
    列表中的方法
    对编程本质的认识
    列表技能
    链表策略
    在pycharm里添加解释器路径
    数据类型转化
    罗列内存中的数字
    【python3的学习之路十】模块
    【python3的学习之路九】函数式编程
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6667141.html
Copyright © 2011-2022 走看看