poj 1142_poj是什么意思

poj 1142_poj是什么意思http://poj.org/problem?id=1142题意:找一个比n大的数字,这个数字要可以分解(这点很重要)成,分解的因子和,和这个数字的各位数字和,相等的话,输出这个数字思路:因为这个数字要可以分解,所以首先判断这个数是否是质数,这个很重要,因为质数不符合题意。然后对这个数字进行分解。递归分解。递归的时候也注意,有可能某个因子是质数,如果这个因子是质数,比如11,也要…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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\n",i);
57                 break;
58             }
59         }
60     }
61     return 0;
62 }

 

转载于:https://www.cnblogs.com/Tree-dream/p/6690278.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187194.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021年河北高考成绩位次怎么查询,2021年河北高考一分一段表查询排名方法 成绩排名位次什么时候公布…

    2021年河北高考成绩位次怎么查询,2021年河北高考一分一段表查询排名方法 成绩排名位次什么时候公布…河北高考填报志愿最关键的第一步,就是在河北高考一分一段表查询排名方法考生要在“一分一段表”中查找与自己成绩相对应的分数排名,以及这一位次的成绩共有多少考生,以此来确定个人成绩在全省的位置。同时查一下自己的目标院校在往年的录取线是多少,该院校的录取线在当年“一份一段表”中的位置再查一下该院校在当年的招生人数,参照今年的招生计划人数,综合判断自己今年的位置是否能够被目标院校录取。河北高考成绩排名位次一…

    2022年7月16日
    50
  • 电脑蓝屏报错0x00000006怎么办?蓝屏报错0x00000006解决方法

    电脑蓝屏报错0x00000006怎么办?蓝屏报错0x00000006解决方法1.首先进入系统,按键盘上的win+r组合键打开“运行”窗口,在运行框中输入msconfig并回车。2.在“系统配置”窗口中,将“加载启动项”选项前的勾去除。3.切换到服务栏界面,勾选“隐藏所有Microsoft服务”,然后点击“全部禁用”。4.接着切换到“启动”栏界面中,点击“全部禁用”,然后点击确定即可。…

    2022年5月14日
    94
  • 如何用matlab编写分段函数_matlab 分段函数

    如何用matlab编写分段函数_matlab 分段函数f(x)的定义如下:2226,04()56,010,231,xxxxfxxxxxxxx且且其它1、写一个函数文件f(x)实现该函数,要求参数x可以是向量;2、作出该函数的图形;3、求出f(x)的零点与最值。解:(1)、编写M函数文件functiony=f(x)n=length(x);ifx<0&x~=-4y=x.^2+x-6;elseif…

    2022年6月14日
    128
  • 计算机网络-常见洪水攻击「建议收藏」

    计算机网络-常见洪水攻击「建议收藏」什么是洪水攻击洪水攻击(FLOODATTACK)是指利用计算机网络技术向目标主机发送大量无用的数据报文,使得目标主机忙于处理无用的数据报文而无法提供正常服务的网络行为。主要原理:利用了网络协议中安

    2022年8月6日
    9
  • 【技术类】不得不看的Landsat 8常用的波段组合形式

    【技术类】不得不看的Landsat 8常用的波段组合形式Landsat8hasbeenonlineforacoupleofmonthsnow,andtheimageslookincredible.WhileallofthebandsfrompreviousLandsatmissionsarestillincorporated,thereareacoupleofnewones,such

    2022年7月23日
    10
  • python动态心形代码简单_python 心形

    python动态心形代码简单_python 心形0.最终效果1.绘制一条心形曲线最近看到个视频,打算绘制个心型动态的曲线。1.1Matlab确定图像及其函数网上有很多关于心形曲线的资料,各种各样的形状,但是我比较倾心于桃心形。先在Matlab里简单看一下是什么样的。桃心形曲线的方程如下x=16sin^3(t)y=13cos(t)-5cos(2t)-2cos(3t)-cos(4t)Matlab绘制效果如下:Matlab程序如下。clcc…

    2022年9月25日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号