编写一个已知整数判断其是否是完全数的函数。并用该函数输出1000以内的所有完全数
- 提问者网友:献世佛
- 2021-06-01 05:00
- 五星知识达人网友:渡鹤影
- 2021-06-01 05:54
#include <stdio.h>
int fun(int n)
{
int i,sum = 0;
for(i=1;i<n;i++)
{
if(n % i == 0) //如果i是n的因子. 就将i累加到sum中.
sum = sum + i;
}
if(sum == n) //判断n和sum是否相等.如果相等就说明这个数是完全数.返回1.
return 1;
return 0; //否则返回0;
}
int main()
{
int i,t;
scanf("%d", &t);
if( fun( t ) )
printf( "Yes\n" );
else
printf( "No\n" );
for(i = 1; i <= 1000; i++)
{
if( fun( i ) )
printf("%d\t",i);
}
printf("\n");
return 0;
}
- 1楼网友:大漠
- 2021-06-01 06:32
我用vbscript编一个吧!
dim sum=0
for n=2 to 1000
for i=1 to n-1
if n mod i=0 then
sum=sum+i
end if
next
if n=sum then
str=str&" "&n
end if
next
msgbox str
俺用VB实现的,呵呵
Private Sub Command1_Click() Dim i As Integer For i = 1 To 1000 If wanquanshu(i) <> -1 Then Print wanquanshu(i) End If Next i End Sub Public Function wanquanshu(j As Integer) As Integer Dim i, sum As Integer For i = 1 To j - 1 If j Mod i = 0 Then sum = sum + i End If Next i If sum = j Then wanquanshu = sum Else wanquanshu = -1 End If
End Function