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。
函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
函数主体:函数主体包含一组定义函数执行任务的语句。
#include"stdafx.h"
#include<stdio.h>
int totalnum(int num)//返回所有约数的和
{
int sum=0;//记录所有约数的和
int i=0;
for(i=1;i<=num/2;i++)
{
if(num%i==0)
{
sum+=i;
}
}
return sum;
}
int main()
{
int i=0;
int j=0;
for(i=2;i<=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<=10000;i++){
int sum=0;
for(int j=1;j<=i;j++){
if(i%j==0){
sum+=j;}
if(sum==i){
System.out.println(i);
break;}}
}
}
}
#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;//每输出完一个就换行
}
}
}
还有不懂可以问
#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;
}