精华内容
下载资源
问答
  • 2013-09-21 回答#include#.../*修改2:你这里原先的做法是不对的,你让c=0,然后进行了循环判断,循环体里面c首先+1,然后进行整除判断这样的话你的确是从1开始整除判断的,但是对于c,它满足sqrt(i)>c,但是执行完c=...

    2013-09-21 回答

    #include

    #include

    void main ()

    {

    int i=1,c,i2=0;

    do

    {

    /*修改1:i2是用来保存因子和,那么每次循环前都应该将i2置零*/

    i2=0;

    /*修改2:你这里原先的做法是不对的,你让c=0,然后进行了循环判断,循环体里面c首先+1,然后进行整除判断

    这样的话你的确是从1开始整除判断的,但是对于c,它满足sqrt(i)>c,但是执行完c=c+1之后呢?

    你下面进行整除判断的是在执行完c=c+1之后,也就是说你的循环体检查范围是在检查c,而判断整除却是在判断c+1,

    改成我下面这样就OK了,下面那个输出质数也是同样的问题,就不在哪里啰嗦了*/

    c=1;

    while(sqrt(i)>c)/*求因子和*/

    {

    if(i%c==0) { i2=i2+c+i/c; }

    c=c+1;

    }

    /*修改3:完数的定义是真因子(除去该数字本身后的因子)和等于该数字本身的数,

    按照你的思路,在将c=1加入i2的时候也会将i/c=i/1=i也加入i2,可以通过事后从i2中减去i来修正*/

    i2=i2-i;

    /*修改4:求因子和的时候没有考虑i是平方数,也就是sqrt(i)也是i的因子的情况,

    这里按照你的思路改起来有点麻烦*/

    if(sqrt(i)==(int)sqrt(i))/*先判断平方根是不是整数,原因要解释再问我...*/

    {

    if(i%((int)sqrt(i))==0) { i2=i2+sqrt(c); }/*再判断能不能整除*/

    }

    /*修改5:你在判断的时候i*2是什么意思呢?*/

    if(i2==i)/*判断*/

    {

    printf("完数%d\nits factors are  ",i2);/*输出完数*/

    c=1;

    while(i-1>c)

    {

    if(i%c==0) { printf("%d.",c); }/*输出因子*/

    c=c+1;

    }

    /*修改6:这句应该放在上面那个while外面,每输出一个完数就输出一个回车,将它们分隔开来*/

    putchar('\n');

    }

    /*修改7*:这句一定要放在外面,原先被你放在了判断它是完数那里面了,按照你的也就是只有在i是完数

    的时候它才+1,那如果i不是完数,整个循环体就一直在对这个i循环,那就死循环了*/

    i=i+1;               /*循环*/

    }while(i<=1000);

    }

    /*至于为什么会出现你那个问题,你这里面错误太多了,懒得分析了--!,蛋疼我写这么多还不采纳就没天理了*/

    追问:

    嗯 输出因子 你有什么好的想法呢?我书才看了100页多,就用最基本的语言怎么搞出因子,我觉得上面这个确实没麻烦,还有真的感谢你为我写了那么多行代码,一定仔细参考。

    追答:

    检查因子没有什么高效的算法,像上面那样一个个试就可以了,不过有几个小问题

    你是对每个i检查是否有c

    这是需要时间的,你循环体循环多少次就要调用多少次sqrt,这就造成了重复计算,浪费了时间

    解决方法之一是一开始就计算用并一个double保存sqrt(i),然后循环体直接对保存的值进行判断

    不过我一般是判断通过c*c<=i来判断的,这样就不要很麻烦的对sqrt(i)进行一次特判

    另外不知道你看了数组没有?如果学了数组的话还有一个小改进

    就是你在判断他是不是完数的时候进行一次因子判断,这是为了求因子和

    当他是完数的时候你又要进行一次因子判断,为了输出因子

    其实这里可以用一个数组来保存第一次进行因子判断时获得的因子

    这样在输出因子的时候就可以直接把数组里面保存的数据输出了

    都是一些小改进,但也不容忽视,大体方向是没有错的

    追问:

    确实 我觉得 循环时判断结束条件是这一章最最重要的,可能以后也是难点。现在先基本了解一些,谢谢你 仔细的回答。以后有问题再求教你,加50分。

    展开全文
  • 读者把这100道C语言编程学明白就入行啦,下面的超链接,可以点击跳转哦~1、C语言 | 温度转换2...| 三目运算判断大写8、C语言 | 输入一个数,输出相应result9、C语言 | 成绩的等级判别10、C语言 | 判断是否是闰年11...

    读者把这100道C语言编程学明白就入行啦,下面的超链接,可以点击跳转哦~

    1、C语言 | 温度转换

    2、C语言 | 计算存款利息

    3、C语言 | 大写A转换为小写a

    4、C语言 | 用%f输出实数

    5、C语言 | 先后输出Love

    6、C语言 | 由小到大输出两个数

    7、C语言 | 三目运算判断大写

    8、C语言 | 输入一个数,输出相应result

    9、C语言 | 成绩的等级判别

    10、C语言 | 判断是否是闰年

    11、C语言 | 求1+2+...100的和

    12、C语言 | 统计捐款人数及人均捐款数

    13、C语言 | 输出100-200之间不能被3整除的数

    14、C语言 | 输出4*5矩阵

    15、C语言 | 求斐波那契数列的前30个数

    16、C语言 | 判断是否为素数

    17、C语言 | 求100-200之间的素数

    18、C语言 | 三种样式的九九乘法表

    19、C语言 | 求特定规律数的和

    20、C语言 | 心形表白神器

    21、C语言 | 打印菱形

    22、C语言 | 逆序输出10个数

    23、C语言 | 冒泡排序比较大小

    24、C语言 | 将一个二维数组行列元素互换

    25、C语言 |求3*4矩阵中最大的元素值及行列

    26、C语言 | 输出杨辉三角

    27、C语言 | 函数实现输出I love you

    28、C语言 | 函数实现比较大小

    29、C语言 | 递归求年龄

    30、C语言 | 递归求n!

    31、C语言 | 用指针对10个数排序

    32、C语言 | 计算总平均分及第n个人的成绩

    33、C语言 | 用指向元素的指针变量输出二维数组元素的值

    34、C语言 | 将字符串a复制为字符串b并输出b

    35、C语言 | 改变指针变量的值

    36、C语言 | 让用户选择1或2输出max或min

    37、C语言 | 把学生信息放在一个结构体变量中

    38、C语言 | 统计选票结果的程序

    39、C语言 | 按成绩高低输出学生信息

    40、C语言 | 通过指向结构体变量的指针变量输出结构体变量中的信息

    41、C语言 | 输出平均成绩最高学生的信息

    42、C语言 | 建立链表,输出各结点中的数据

    43、C语言 | 用同一表格输出若干人的数据程

    44、C语言 | 输入一些字符,直到输入“#”为止

    45、C语言 | 将磁盘文件先显示屏幕上再复制到另一个文件中

    46、C语言 | 将“China”翻译成密码

    47、C语言 | 求圆周长 面筋,圆球表面积 体积

    48、C语言 | 用getchar读入两个字符,分别用putchar和printf输出

    49、C语言 | 输入小于1000的数,输出平方根

    50、C语言 | 由小到大输出4个数

    51、C语言 | 求某点的建筑高度

    52、C语言 | 统计字符中英文 空格 数字和其他

    53、C语言 | 求1!+2!+...+20!

    54、C语言 | 输出水仙花数

    55、C语言 | 找出1000以内的所有完数

    56、C语言 | 求某个数列前20项和

    57、C语言 | 自由落地,求第10次落地共经过多少米

    58、C语言 | 猴子吃桃问题

    59、C语言 | 乒乓球比赛,编程找出3对赛手的名单

    60、C语言 | 选择法对10个数排序

    61、C语言 | 求一个3*3矩阵对角线元素之和

    62、C语言 | 将一个数按大小顺序插入数组中

    63、C语言 | 输出魔方矩阵

    64、C语言 | 找出二维数组中的鞍点

    65、C语言 | 统计文章中的字符

    66、C语言 | 将密码译回原文,并输出密码和原文

    67、C语言 | 将两个字符串连接起来,不用stract

    68、C语言 | 比较字符串s1 s2,不用strcmp

    69、C语言 | 将s2中的字符复制到s1中,不用strcpy

    70、C语言 | 将字符串中的元音字母复制到另一个字符串中

    71、C语言 | 输出4个数字字符,每个数字空一格

    72、C语言 | 用递归求n阶勒让德多项式

    73、C语言 | 递归将一个整数n转换成字符串

    74、C语言 | 计算某日是该年的第几天

    75、C语言 | 由小到大输出3个整数

    76、C语言 | 对n个字符开辟连续的存储空间

    77、C语言 | n个人围成一圈,顺序排号

    78、C语言 | 求字符串的长度

    79、C语言 | 输入月份号,输出该月的英文

    80、C语言 | n个整数,前面各数顺序向后移动m,后m个变成最前面m个

    81、C语言 | 用指向指针的指针对5个字符串排序输出

    82、C语言 | 用指向指针的指针对n个整数排序

    83、C语言 | 不死神兔古典问题

    84、C语言 | 打印出水仙花数

    85、C语言 | 求s=a+aa+...+aa..a的值

    86、C语言 | 判断是否为回文数

    87、C语言 | static定义静态变量

    88、C语言 | 使用auto定义变量

    89、C语言 | 使用register定义变量

    90、C语言 | 宏#define命令练习

    91、C语言 | 学习使用&

    92、C语言 | 学习使用异或^

    93、C语言 | 学习使用按位取反-

    94、C语言 | 学习使用递增运算符

    95、C语言 | 学习使用逻辑运算符

    96、C语言 | 模拟银行打印系统

    97、C语言 | 学习使用算术运算符

    98、C语言 | 奖金发放问题

    99、C语言 | 直接插入排序

    100、C语言 | 希尔排序

    展开全文
  • c语言判断完数

    2018-11-08 20:12:33
    题目描述: 一个数如果恰好等于它的因子之和,这个数就称 ...编写一个程序判断用户输入的一个数是否为“完数”。 输入样式: 6 输出样式: yes #include&amp;lt;stdio.h&amp;gt; int main() { ...

    题目描述:
    一个数如果恰好等于它的因子之和,这个数就称 为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6就是“完数”。又如,28的因子为1、2、4、7、14,而 28=1+2+4+7+14,因此28也是“完数”。编写一个程序,判断用户输入的一个数是否为“完数”。

    输入样式:
    6

    输出样式:
    yes

    #include<stdio.h>
    int main()
    {
       int a,i=1,sum=0;//i=1,因为一个数的因子包括1
       scanf("%d",&a);
       while(i<a)   //求数的因子不需要算入本身
    {
       if(a%i==0)
       sum+=i;
       i++;//判断完数,并储存进sum中
    }
     if(a==sum)
     printf("yes");
     else
     printf("no");
    }
    
    展开全文
  • 完数判断c语言

    2020-07-30 16:53:37
    程序找出N之内的所有完数,并按下面格式输出其因子 输入 N 输出 ? its factors are ? ? ? 样例输入 1000 样例输出 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its ...

     

    题目描述
    一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子
    输入
    N
    输出
    ? its factors are ? ? ?
    样例输入
    1000
    样例输出

    6 its factors are 1 2 3

    28 its factors are 1 2 4 7 14

    496 its factors are 1 2 4 8 16 31 62 124 248

    #include <stdio.h>
    
    int main() {
           int sum,n;
           scanf("%d",&n);
           for(int i=2;i<=n;i++){
               sum=0;              //每次循环是初始化为0
            for(int j=1;j<=i/2;j++){
                if(i%j==0){
                    sum+=j;        //因子求和
                }
            }
            if(sum==i){            //判断是否是完数
                printf("%d its factors are ",i);
                for(int j=1;j<=i/2;j++){   //循环输出
                   if(i%j==0){
                       printf("%d ",j);
                   }
                }
                printf("\n");      
            }
    
        }
        return 0;
    }
    

     

    展开全文
  • C语言 判断并输出完数 题目: 一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子。 ...
  • C语言的那些经典程序 第十二期本期小C给大家带来三个用C语言解决实际问题法人典例。如果全都理解,相信肯定能给大家带来收获!接下来让我们看看是哪些程序吧!1找出1000以内的所有完数程序:运行结果:程序分析:一...
  • 2 完数(5分) ...提示:可以写一个函数来判断某个数是否是完数。 输入格式: 两个正整数,以空格分隔。 输出格式: 其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一行...
  • C语言完数判断

    2020-03-29 20:32:01
    一个数如果恰好等于不包含它... 编程序找出N之内的所有完数,并按下面格式输出其因子 输入 N 输出 ? its factors are ? ? ? 样例输入 1000 样例输出 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 it...
  • 完数。用C语言描述

    2018-12-24 00:26:52
    程序找出N之内的所有完数,并按下面格式输出其因子。C语言描述。 题目分析: 从题目中可以找出关键词,是因子之和等于其本身。 那么我们就需要先找出一个数的每一个因子,再相加,来判断。 求一个数的因子:通过...
  • 返回:贺老师课程教学链接 项目要求【项目1-完数】一个数如果恰好等于它的因子...(1)输入一个数n,判断n是否是完数[参考解答]解1:#include int main( ) { int n,s,m; printf("输入n:"); scanf("%d", &n); s=
  • C语言 · 完数

    2017-02-14 21:22:00
    算法训练 完数 时间限制:1.0s 内存限制:512.0MB ... 一个数如果恰好等于它的因子之和,这个数就称为“完数”。...编写一个程序判断用户输入的一个数是否为“完数”。 输入格式:输入只有一...
  • C语言——完数

    千次阅读 2017-06-03 16:29:27
    题目内容: 一个正整数的因子是所有可以整除它的正...提示:可以写一个函数来判断某个数是否是完数。 输入格式: 两个正整数,以空格分隔。 输出格式: 其间所有的完数,以空格分隔,最后一个数字后
  • C语言编写完数.doc

    2020-03-11 21:11:26
    2,3)现在你要写一个程序读入两个正整数n和m1输出[n,m]范围内所有的完数提示可以写一个函数来判断某个数是否是完数 输入格式: 两个正整数以空格分隔 输出格式 其间所有的完数以空格分隔最后一个数字后面没有空格如果...
  • 程序框图:m 问题分析 根据完数的定义,解决本题的关键是计算出所选取的整数m(m的取值范围不固定)的因子(因子就是所有可以整除这个数的数),将各因子累加到变量sum (记录所有因子之和),若sum等于m,则可确认m...
  • C语言练习——完数

    千次阅读 2016-11-29 12:45:28
    C语言练习——完数 题目出自“中国大学MOOC”翁恺老师《程序设计入门——C语言》第六周编程练习第二题 以下为题目要求: 一个正整数的因子是所有可以...提示:可以写一个函数来判断某个数是否是完数。 输入格式:
  • C语言之输出完数

    千次阅读 2018-01-31 19:36:42
    程序找出N之内的所有完数,并按下面格式输出其真因子: 输入: N 输出: ? its factors are ? ? ? 设计思路: 找出真因子 真因子加和 判断真因子之和与该数本身是否相等 若相等则为完数进行输出操作后接着...
  • 2完数(5分)题目内容:一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身...提示:可以写一个函数来判断某个数是否是完数。 输入格式: 两个正整数,以空格分隔。 输出格式: 其间所有的完数...
  • 找了十分钟没找到错误,静下心来,发现,存储因子应该在判断该数是否是完数之后。 /* Name: Copyright: Author: Date: 30/07/17 18:20 Description: 【程序19】题目:一个数如果恰好等于它的因子之和,...
  • CSU 大一上 C语言实验报告 (1)教材第2章编程题第2题:编写计算球体体积的程序。 说明:本题声明适当变量,用户键入数据,运算并输出结果,较简单。 (2)教材第2章编程题第8题:编写程序计算第一、第二、第三月...
  • C语言--完数

    千次阅读 2017-04-03 16:31:09
    题目内容: 一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它...提示:可以写一个函数来判断某个数是否是完数。 两种方法: 1,主函数法 #include int main() { int j,sum,n,m; int
  • //*作者:冰糖 //*日期:2018年11月7日 //*章节:第五章 //*题号:9 //*题目:6的因子为1,2,3而6=1+2+3,所以6是完数。输个数如果恰好等于他的因子... /*n表示要判断的数,temp表示因子,sum表示因子之和*/ for(n
  • 2完数(5分)题目内容:一个正...=n提示:可以写一个函数来判断某个数是否是完数。输入格式:两个正整数,以空格分隔。输出格式:其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一行文字:NI...
  • 2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。...提示:可以写一个函数来判断某个数是否是完数。 输入格式: ...
  • C语言程序设计经典例子

    热门讨论 2009-05-22 20:08:27
    1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,  则表明此数不是素数,反之是素数。 2.程序源代码: #include "stdio.h" #include "conio.h" #include "math.h" main() { int m,i...
  • 问题描述  一个数如果恰好等于它的因子...编写一个程序判断用户输入的一个数是否为“完数”。   输入格式 输入只有一行,即一个整数。 输出格式 输出只有一行,如果该数为完数,输出yes,否则输出no。 样例输入 ...
  • 2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。...提示:可以写一个函数来判断某个数是否是完数。 输...
  • C语言———求”完数

    千次阅读 2018-11-27 00:33:45
    一个数如果恰好等于它的因子之和,这个数就称为 &quot;完数 &...兼顾到程序时间复杂度,我们只需要判断**“1到该数的平方根”**就OK啦,但是我们需要将在此范围内对应的另一个因子算出来,即用原...
  • 完数

    2021-04-08 19:15:05
    编写一个程序判断用户输入的一个数是否为“完数”。 输入格式: 输入只有一行,即一个整数。 输出格式: 输出只有一行,如果该数为完数,输出yes,否则输出no。 输入输出样例: 样例输入: 6 样例输出: yes c语言...

空空如也

空空如也

1 2 3
收藏数 43
精华内容 17
关键字:

判断完数c语言程序

c语言 订阅