C++编程,求1000以内的完数并每行按格式输出其因子:6=1+2+3

输出格式要这样的。。。。... 输出格式要这样的。。。。 展开
 我来答
果果就是爱生活
高能答主

2020-05-02 · 专注生活教育知识分享
果果就是爱生活
采纳数:2071 获赞数:272258

向TA提问 私信TA
展开全部

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("\n");

    }

}

int main()

{

    int num = 0;

    for (num = 1; num <= 1000; num++)

    {

        is_Perfectnumber(num);

    }

    system("pause");

    return 0;

}

扩展资料:  

C++ 中的函数定义的一般形式如下:

return_type function_name( parameter list ){   body of the function}

在 C++ 中,函数由一个函数头和一个函数主体组成,下面列出一个函数的所有组成部分。

返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。

函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。

参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。

函数主体:函数主体包含一组定义函数执行任务的语句。

问明6E
高粉答主

2019-06-03 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.8万
展开全部

#include"stdafx.h"

#include&lt;stdio.h&gt;

int totalnum(int num)//返回所有约数的和

{

int sum=0;//记录所有约数的和

int i=0;

for(i=1;i&lt;=num/2;i++)

{

if(num%i==0)

{

sum+=i;

}

}

return sum;

}

int main()

{

int i=0;

int j=0;

for(i=2;i&lt;=1000;i++)

{

int k=totalnum(i);

if(i==k)

{

printf("%d\n",i);

}

}

return 0;

}

扩展资料:

其它方法:

public class wanshu{

public static void main(String[]args){

System.out.println("1000以内的素数有:");

for(int i=1;i&lt;=10000;i++){

int sum=0;

for(int j=1;j&lt;=i;j++){

if(i%j==0){

sum+=j;}

if(sum==i){

System.out.println(i);

break;}}

}

}

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汐日南莘
推荐于2017-12-16 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7528万
展开全部

#include <iostream>

using namespace std;

int main()

{

for(int i=1;i<=1000;i++)

{

int sum=0,a;

for(int j=1;j<i;j++)

if(i%j==0)

{

sum=sum+j;//假如找到一个因子就加起来

a=j;//for循环执行完后a就是最大的那个因子

}

if(sum==i)//判断因子之和与i是否相等

{

cout<<i<<"=";

for(int k=1;k<i;k++)

if(i%k==0)

{

cout<<k;

if(k!=a)

cout<<'+';//假如这个k不是最大的那个因子则输出+号

}

cout<<endl;//每输出完一个就换行

}

}

}

还有不懂可以问  

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兔子和小强
2015-03-31 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1421万
展开全部
#include <stdio.h>
int main(){
int i, j, k, s, factor[100];
for(i=2; i<=1000; ++i){
s = k = 0;
for(j=1; j<i; ++j){
if(i%j==0){
s += j;
factor[k++] = j;
}
}
if(s!=i)continue;
printf("%d=%d", i, factor[0]);
for(j=1; j<k; ++j)
printf("+%d", factor[j]);
putchar('\n');
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式