gpt4 book ai didi

c - C语言中如何返回两个完全数的和

转载 作者:行者123 更新时间:2023-11-30 19:12:48 25 4
gpt4 key购买 nike

我有一个名为 henry 的方法,它接受两个整数参数 ij,并返回 ith 的总和jth 个完全数。例如,henry(1, 3) 应返回 502,因为 6第一个完美数 并且 >496第三个完美数6 + 496 = 502。

int henry (int i, int j)
{
//how do i start
}

我知道如何打印这样的完美数字:

int main()  
{
int i, j, n, sum = 0;

/* Reads upper limit to print perfect numbers upto */
printf("Enter any number to print perfect number up to: ");
scanf("%d", &n);



printf("\nAll Perfect numbers between 1 to %d:\n", n);


/*
* Iterates from 1 to n and print if it is perfect number
*/
for(i=1; i<=n; i++)
{
sum = 0;

/*
* Checks whether the current number i is Perfect number or not
*/
for(j=1; j<i; j++)
{
if(i%j==0)
{
sum += j;
}
}

/* If the current number i is Perfect number */
if(sum == i)
{
printf("%d is Perfect Number\n", i);
}
}

return 0;
}

请给我解决这个问题的提示,谢谢。

最佳答案

int henry(int i,int j)
{
int count=0,k=1,s=0;
while(count<=i || count<=j)
{
int sum=0;
for(p=1; p<=k/2; p++)
{
if(k%p==0)
{
sum += p;
}
}
if(sum==k)
count++;
if(count==i||count==j)
s+=k;
k++;
}
if(i!=j)
return s;
else
return 2*s;
}

关于c - C语言中如何返回两个完全数的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com