如何用C语言编写程序输入一个正整数n,编程序输出从2到n间的所有完数。

供稿:hz-xin.com     日期:2025-01-12
如何用C语言编写程序输入一个正整数n,编程序输出从2到n间的所有完数。

C语言实现如下:
#includevoid main(){int i,j,k,n;scanf("%d",&n); //输入一个正整数nfor(i=2;i<=n;i++){k=0;for(j=1;j<=i-1;j++)if(i%j==0) k+=j;if(k==i) printf("%d
",i);//判断i的所有真因子之和是否等于i,是则输出i。}}注意:建议n的取值小于10000,否则程序运行的时间将比较长。
知识扩展:完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。

#include
void main()
{int i,j,s,n;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
s=1;
for(j=2;j<=i/2;j++)
if(i%j==0)s+=j;
if(s==i)
printf("%8d",i);
}
printf("
");
getch();
return 0;
}

C语言实现如下:
#include<stdio.h>
void main()
{
int i,j,k,n;
scanf("%d",&n); //输入一个正整数n
for(i=2;i<=n;i++)
{
k=0;
for(j=1;j<=i-1;j++)
if(i%j==0) k+=j;
if(k==i) printf("%d\n",i);
//判断i的所有真因子之和是否等于i,是则输出i。
}
}
注意:建议n的取值小于10000,否则程序运行的时间将比较长。
知识扩展:完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1
、2、3,6=1+2+3,所以6是一个完全数。

用C语言编写程序从键盘输入一个正整数数n,输出n!
直接输出计算阶乘的C语言代码及解释:要编写一个C语言程序,从键盘输入一个正整数n并计算其阶乘(n!),可以通过两种方法实现:递归和循环。首先,我们来看递归的方法:c include \/\/ 递归函数计算阶乘 int factorial(int n) { if (n <= 1)return 1;else return n * factorial(n - 1);} int...

C语言:编写程序从键盘输入不定数量的正整数?
方法二:动态数组,根据有效输入,实时扩展数组地址长度。方法三:把每个数字创建成结构体,构建链表,实现自由扩展和删除。下面我的代码是用方法二写的:include <stdio.h> include <malloc.h> int input(int **nsp);\/\/输入任意个整数,忽略负数,输入0结束,成功返回数组长度,失败返回-1 int main(...

C语言 编写一个程序,输入一个正整数,求出它是几位数。
思路:求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。参考代码:include <stdio.h>int main(){ int n,num=0;scanf("%d",&n);while(n){num++;n\/=10;}printf("...

用C语言输入一个正整数n,将其逆序输出?
以下是用C语言输入一个正整数n,将其逆序输出的代码:```c include <stdio.h> int main() { int n, rev = 0;printf("请输入一个正整数:");scanf("%d", &n);while(n != 0) { rev = rev * 10 + n % 10;n \/= 10;} printf("逆序输出为:%d\\n", rev);return 0;} ```...

如何用c语言实现“判断用户输入一个值为正整数,如果不是提醒用户重新输...
可以让用户输入一个字符串,然后检查每个字符是否是0~9中的任意一个,如果不是,则不是正整数。当然这里会允许000123这样的情况出现,即数字可以用0开头。如要处理,还需另外考虑,如果不考虑这个问题,可以写成如下的代码 include <stdio.h>main(){ char input[BUFSIZ]; printf("Input a positive...

编写程序,从键盘输入一个3位的正整数,输出它的百位数,十位数和个位数...
同时,它也简要回顾了编程语言的发展历程,从FORTRAN到C、Pascal,再到C++的诞生和标准化过程,尤其是C++的发展与STL的引入对其扩展的影响。改写后:在编写程序时,输入一个3位正整数是一个基本任务。以下是一个简单的示例,展示了如何实现这个功能:cvoidmain(){inta,b,c,d;printf("请输入一个三位数...

C语言 编写一个程序,输入一个正整数,求出它是几位数。
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。

有没有C语言大神啊,帮写个程序呗。输入一个五位数的正整数,按顺序输出...
return 0;} 3.逆序输出 include"stdio.h"include "math.h"main(){ int i,n,m,s=0;printf("输入一个五位整数:" );scanf("%d",&i);for (n=5;n>1;n--){ s+=i%10 ;for (m=5;m>1;m--){s*=10;break;} i=i\/10;} s=s+i;printf("逆序输出%d\\n",s);return 0;} ...

C语言编程:输入一个不超过5位的正整数,
include<stdio.h> void main(){ int n,i,a[10];printf("请输入一个不超过5位的正整数:\\n");scanf("%d",&n);int sum=0;for(i=0;;i++){ a[i]=n%10;\/*取余存于a[i]中*\/ n=n\/10;sum++;\/*位数加一*\/ if(n==0) break;} printf("它是%d位数\\n",sum);int j;printf...

c语言编程要求输入一个不大于五位的正整数,正序输出,
其实正序输出,你可以直接把这个正整数输出即可,也可以用如下代码实现:include<stdio.h> void main(){ int x;printf("请输入一个不大于5位的正整数!\\n");scanf("%d",&x);if(x<=0||x>99999){ printf("ERROR!\\n");exit(1);} else { printf("%d %d %d %d %d\\n",x%10000,(x\/...