zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    tomcat调试页面的时候,不刷新
    $.ajax()方法详解(转)
    Zookeeper简述
    简述Dubbo
    Nginx入门
    Redis入门
    JVM入门
    spring MVC框架入门(外加SSM整合)
    Mybatis框架入门
    Spring+Hibernate+Struts(SSH)框架整合
  • 原文地址:https://www.cnblogs.com/Tree-dream/p/6690278.html
Copyright © 2011-2022 走看看