• poj 1142


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

    题意:找一个比n大的数字,这个数字要可以分解(这点很重要)成,分解的因子和,和这个数字的各位数字和,相等的话,输出这个数字

    思路:因为这个数字要可以分解,所以首先判断这个数是否是质数,这个很重要,因为质数不符合题意。然后对这个数字进行分解。递归分解。递归的时候也注意,有可能某个因子是质数,如果这个因子是质数,比如11,也要分解成1和1相加。而不是加11

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <math.h>
     4 
     5 int tmp;
     6 bool isprime (int k)
     7 {
     8     int t = sqrt ( k + 0.5 );
     9     for ( int i = 2 ; i <= t ; i ++ )
    10         if ( k % i == 0 )
    11             return false;
    12     return true;
    13 }
    14 int sum(int x)
    15 {
    16     int temp = 0;
    17     while(x>0)
    18     {
    19         temp += x%10;
    20         x/=10;
    21     }
    22     return temp;
    23 }
    24 void solve(int x)
    25 {
    26     if(isprime(x)){
    27         tmp+=sum(x);
    28         return;
    29     }
    30     for(int i = 2; i<=x; i++)
    31     {
    32 
    33         if(!(x%i))
    34         {
    35             tmp+=sum(i);
    36             solve(x/i);
    37             break;
    38         }
    39     }
    40 }
    41 
    42 
    43 int main()
    44 {
    45     int n;
    46     while(scanf("%d",&n))
    47     {
    48         if(n<=0)
    49             break;
    50         for(int i = n+1;; i++)
    51         {
    52             tmp = 0;
    53             solve(i);
    54             if(sum(i)==tmp&&!isprime(i))
    55             {
    56                 printf("%d
    ",i);
    57                 break;
    58             }
    59         }
    60     }
    61     return 0;
    62 }
  • 相关阅读:
    第 4 章 MySQL 安全管理
    第 3 章 MySQL 存储引擎简介
    第 2 章 MySQL 架构组成
    道教的【五行】学说
    【matlab】MTATLAB解线性方程组
    RPolar项目进度记录
    numpy和TensorFlow的函数
    卷积
    腾讯QQ空间超分辨率技术TSR
    混元桩
  • 原文地址:https://www.cnblogs.com/Tree-dream/p/6690278.html
Copyright © 2020-2023  润新知