㈠ 编程找出1000以内所有的完数,并输出每个完数的所有因子
# include<stdio.h>
int main()
{
int n,i,sum;/*定义变量*/
for(n=2;n<=1000;n++)/*给变量赋初值实现循环*/
{sum=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
sum=sum+i;/*把它的因数累加起来赋给sum存储起来*/
if(sum==n)/*因数之和等于给出的那个数n*/
{
printf(" %d its factors are",n);/*输出n的值*/
for(i=1;i<n;i++)
{
if(n%i==0) printf("%d,",i);/*把i的值依次输出*/
} printf("\n"); /*输出完一列之后换行*/
}
}
}
return 0;
}
㈡ 求1000以内的所有完数
#include <stdio.h>
void main()
{
int i,j;
printf("1000之内的所有完数:
");
for(i=6;i<1000;i++){
int sum=0;
for(j=1;j<i;j++){
if(i%j==0)
sum = sum+j;
}
if(sum==i)printf("%d,",i);
}
}
输出结果为:6,28,496
原代码中的sum 初始化的位置是错误的,导致结果不正确,正确代码请看我的回答。
完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。
求1000以内的完数可以用C,C++、java和Pascal语言等,下面举例java语言实现代码。
用java编写1000以内的完数如下:
public class PerfectNumber {public static void main(String[] args) {System.out.println("1000以内的所有完数有:");for (int i = 2; i < 1000; i++) {// 遍历1000以内的所有整数int sum = 0;// 定义和变量for (int j = 1; j < i; j++) {if (i % j == 0) {// 满足是i的因子,就累加sum += j;}}if (sum == i) {// 满足因子之和等于i就打印该完数System.out.print(i + " ");}}}}㈢ C++程序 要求输出1000以内的完数
if(n/i-int(n/i)==0)错了。
1、if(n/i-int(n/i)==0)这个改为if(n%i == 0)
2、找到一个完数以后,没有把s初始化为0,所以后面肯定会出错。在n=n+1;后面加s=0。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
(3)编程1000以内的完数扩展阅读:
使用C++编程时的有关事项:
1、开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
2、生成程序是指将源码转换成一个可以运行的应用程序的过程。如果程序的编写是正确的,那么通常只需按一个功能键,即可搞定这个过程。
3、对程序进行编译,这需要用到编译器。编译器将C++语句转换成机器码(也称为目标码);如果这个步骤成功,下一步就是对程序进行连接,这需要用到链接器。
㈣ C++ 编写程序求1000以内的所有完数
#include<iostream>
usingnamespacestd;
intmain()
{
inta,i,f;
for(a=2;a<=1000;a++)
{
f=0;
for(i=1;i<a;i++)
{
if(a%i==0)
f=f+i;
}
if(f==a)
cout<<a<<endl;
}
return0;
}
㈤ 用VC编程,求1000以内的完数
您好!下面的程序调试通过结果正确。
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
void main()
{
int i,j,wanshu,sum = 0;
for(i=1;i<=1000;i++)
{
wanshu = 0;
for(j = 1;j<i;j++)
{
if(i%j==0)
wanshu+=j;
}
if(wanshu == i)
{
sum += wanshu;
if(wanshu == 6)
printf("%d",wanshu);//打印第一个完数
else
printf("+%d",wanshu);//打印后续完数
}
}
printf("=%d\n",sum);//打印=和
system("pause");
}
㈥ c++编程求1000内的所有完数
main()
{
static
int
k[10];
//设因子最多10个,怕不够用可以设再大些
int
i,j,n,s;
for(j=2;j<1000;j++)
//找完数
{
n=-1;
//k数组下标
s=j;
//测试数j,s为临时计算用
for(i=1;i<=sqrt(j);i++)
//挨个找因数
{
if((j%i)==0)
//j可以整除i吗
{
n++;
//下标从0开始计
s=s-i;
k[n]=i;
//加入i到k数组中
}
}
if(s==0)
//s减完所有因数为0吗?是则j为完数
{
printf(\"%d
is
a
wanshu\",j);
for(i=0;i<=n;
printf(\"%d,\",k[i]);
//挨个输出j的各因子
printf(\"%d\\n\",k[n]);
}
}
}
㈦ c语言,求一个程序,输出所有1000以内的完数
#include"stdio.h"
intmain()
{
intj,k,sum=0;
for(k=2;k<=1000;k++)
{
sum=0;
for(j=1;j<k;j++)
if(k%j==0)
sum=sum+j;
if(sum==k)
printf("%d",k);
}
return0;
}
㈧ C++编程,求1000以内的完数并每行按格式输出其因子:6=1+2+3
void is_Perfectnumber(int number) //判断完数并输出
{
int i = 0;
int j = 0;
int sum = 0;
int arr[100] = { 0 };//定义一个数组,存储因子
for (i = 1; i <= number/2; i++) //判断完数
{
if (0 == number % i)
{
arr[j] = i;
j++;
sum = sum + i;
}
}
if (number == sum)
{
printf("%3d its factors are ",sum);
int k = 0;
for (k = 0; k < j; k++) //输出完数的各个因子
{
printf("%d ", arr[k]);
}
printf(" ");
}
}
int main()
{
int num = 0;
for (num = 1; num <= 1000; num++)
{
is_Perfectnumber(num);
}
system("pause");
return 0;
}
(8)编程1000以内的完数扩展阅读:
C++ 中的函数定义的一般形式如下:
return_type function_name( parameter list ){ body of the function}
在 C++ 中,函数由一个函数头和一个函数主体组成,下面列出一个函数的所有组成部分。
返回类型:一个函数可以返回一个值。return_type是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字void。
函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
函数主体:函数主体包含一组定义函数执行任务的语句。
㈨ 用C语言输出1000以内所有的完数
用C语言输出1000以内所有的完数步骤如下:
1、首先打开vc6.0,新建一个项目。