使用c语言编写一个程序,判断从键盘输入的整数是否为“完全数”

使用c语言编写一个程序,判断从键盘输入的整数是否为“完全数”,第1张

要是质数的话 6=1+2+3+5

#include<stdioh>

#include<stdioh>

void main()

{

int n,m=1,i,j;

scanf("%d",&n);

for(i=1;i<n;i++)

{

for(j=1;i%j;i++);

if(i==j)

m+=i;

}

if(m==n)

printf("为“完全数”\n");

else

printf("不为“完全数”\n");

}

integer a,i,k,sum

read(,)a

k=int(a/2+01)

sum=0

do 10 i=1,k

if (mod(a,i)eq0)  sum=sum+i

10 continue

if (sumeqa) then 

write(,)'yes'

else

write(,)'no'

endif

pause

end

写个比较笨的方法:

int perfect(int number)

{

int i, sum = 0;

for(i = 1; i < number; i++)

{

if(number%i == 0)

{

sum = sum + i;

}

if(sum > number)

{

return 0;

}

}

if(sum == number)

{

return 1;

}

return 0;

}

这是一个C#算法可能对你有帮助

看看吧!

public static int[] wanShu(int num)

{

List<int> listInt = new List<int>();//存储因子的泛型数组

List<int> listReturn = new List<int>();//存储最后的结果的泛型数组

for (int i = 3; i < num; i++)

{

for (int j = 1; j < i; j++)//被除数即因子只可能在1到num-1里面

{

if (i % j == 0)//查找所有因子

{

listIntAdd(j);//将因子添加到数组

}

}

if (listIntSum() == i)//判断因子和是否等于本数值(即完数的定义)

{

listReturnAdd(i);//如果是的话就记录下来

}

listIntClear();

}

return listReturnToArray();//返回所有完数数组

}

我的思路是这样的:

for(每一个数i)

{

for(从1到i的倒数第一个数)

{

记录下每个因子;

}

然后将所有因子相加与i数比较

}

哈哈。。

完全数(Perfect number),又称完美数或完备数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。

#include "stdioh"

int main()

{

    int sum,k,j;

    sum=0;

    for(k=2;k<=100;k++)//从2开始判断该数是否是完数

    {

        sum=0;

        for(j=1;j<k;j++)//计算所有真因子的和

            if(k%j==0)

                sum=sum+j;

        if(sum==k)//如果该数恰好等于它的所有真因子的和,输出该完数

            printf("%d ",k);

    }

    return 0;

}

/

6

6 = 1 + 2 + 3

28

28 = 1 + 2 + 4 + 7 + 14

1024

0

Press any key to continue

/

#include <stdioh>

#include <stdlibh>

int main() {

int i,j,n,num,sum,a[16];

while(scanf("%d",&num) == 1 && num > 0) {

j = 0;

sum = 0;

for(n = 1; n <= num / 2; ++n) {

if(num % n == 0) {

sum += n;

a[j++] = n;

}

}

if(sum == num) {

printf("%d = ",num);

for(i = 0; i < j; ++i) {

if(i == j - 1) printf("%d",a[i]);

else printf("%d + ",a[i]);

}

printf("\n");

}

}

return 0;

}

以上就是关于使用c语言编写一个程序,判断从键盘输入的整数是否为“完全数”全部的内容,包括:使用c语言编写一个程序,判断从键盘输入的整数是否为“完全数”、fortran90编程中判断一个正整数是否为完数的程序,若是输出yes,否则输出no、判断一个数是否为完数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10102497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存