C语言问题求代码,我想需要简单易懂的。

如果一个数的大小恰好等于它的因子之和,这个数就称为完数(如6=1+2+3,其中1、2、3为因子,6为因子和)。求1000之内的所有完数。
提示:解决方法,找到某个数i的因子(如果i%j==0,那么j就是i的一个因子,j从1开始到i-1)
程序代码:

#include <stdio.h>
int wannum(int num)
{
    int i,sum=0;
    for(i=1;i<num;i++)
        if(num%i==0)
            sum+=i;
    return sum==num;
}
void main()
{
    int i;
    for(i=1;i<=1000;i++)
        if(wannum(i))
            printf("%d\n",i);
}

 

追问

7行那里有问题啊

追答

上面程序已经改好了,输出结果是6,28,496

追问

索嘎,我知道了

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-21
#include <stdio.h>

main()
{
int i, j, k = 0;
printf("请输入一个数:");
scanf("%d", &i);
for(j=1;j<i;j++)
if(i%j==0)
k+=j;
if(i==k)
printf("%d是完数\n",i);
else
printf("%d不是完数\n",i);
}
我昨天刚刚写的追问

我需要1000内有多少个完数的代码

追答

#include
main()
{
int m,i,s;
for(m=1;m<=1000;m++)
{

s=0;
for(i=1;i<m;i++)
if(m%i==0)
s=s+i;
if(s==m)
printf("%d,",s);

}
}

C语言问题求代码,我想需要简单易懂的。
include <stdio.h>int wannum(int num){ int i,sum=0; for(i=1;i<num;i++) if(num%i==0) sum+=i; return sum==num;}void main(){ int i; for(i=1;i<=1000;i++) if(wannum(i)) printf("%d\\n",i);} ...

急!急!简单c语言编程题,求编写代码
\/\/第一题#include<stdio.h>void fun(int n){ int i,j,k,t;for(k=0;k<n;k++)\/\/控制总行数{ for(i=0;i<n-k-1;i++)\/\/控制输出空格,因为空格不好看见,就用*代替 printf("%c",'*'); for(j=0;j<2*k+1;j++)\/\/控制输出字母 { printf("%c",65+j)...

求简单C语言程序代码!
int main()int m,n,p,q,s,r;printf("请输入两个正整数;m,n\\n");scanf("%d,%d",&m,&n);include<stdio.h> main()int a,b,t=0;scanf("%d %d",&a,&b);if (a

c语言求助代码该怎么写,能附带讲解说明最好。
include <stdio.h>void fun() { printf("Smile! ");}int main() { \/\/ 需要打印 3 行, 所以从 0 遍历到 3 for (int i = 0; i < 3; i++) { \/\/ 每行需要打印 "Smile! " 的个数为 3 - i for (int j = 0; j < 3 - i; j++) { fun(); }...

求C语言代码、、、
给你个简单易懂的!include<stdio.h> void main(){ int i,j,t,a[10];printf("请输入10个数:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\\n");for(i=0;i<9;i++)for(j=0;j<9-i;j++){ if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} } f...

写一个简短的C语言代码
最简单的C语言代就是输出“helloWord”,通常是作为初学编程语言时的第一个程序代码。具体代码如下:include <stdio.h> int main(){ printf("Hello, World! \\n");return 0;}

一个简单的c语言程序代码(一个简单的c语言程序代码是什么)
c语言编写一个程序,非常简单1、进入编辑页面在,页面编辑源代码就可以includestdio.hvoidmain(){printf(helloworld!n);}然后选择保存,打印,输出运行。2、利用C语言编写一个求两数相加的和的编程思想和方法如下:首先需要定义三个变量a,b,c,两个为相加的数,第三个为相加后得到的和。然后使用...

c语言编程,求源代码
第一种方法:include<stdio.h> int main(){ int x,ge,shi,bai;printf("请输入一个三位数:\\n");scanf("%d",&x);ge=x%10;shi=x\/10%10;bai=x\/100;printf("这个三位数的逆序是:\\n%d\\n",ge*100+shi*10+bai);return 0;} 第二种方法:include<stdio.h> include<string.h> int ...

C语言题目,求代码
我就合成一个了。已知ans[1]=0,ans[2]=1,下面就可以递归求解了。思路2:排列组合 答案:51167078 附上代码:[cpp] view plaincopy include<stdio.h> int fac(int a, int b){ if(a==1){ if(b==1)return 1;return 0;} if(a==2)return 1;return (fac(a-1,!b)+fac(a-2,!b)...

求50行简单C语言程序代码,基础的就好
\/\/冒泡排序算法 \/\/基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。void bubbleSort(int *arr, int n) { int i,j;for (i = 0; i<n - 1; i++)for (j = 0; j < n - i - 1; j++) { \/\/如果前面的数比...

相似回答
大家正在搜