C语言编程,完数问题!#include
C语言编程,完数问题!
#include<stdio.h>
int main()
{int num,k,sum;
for(num=6;num<=1000;num++)
{sum=0;
for(k=1;k<num;k++)
if(num%k==0) sum+=k;
if(num==sum)
{ printf("%d its factor are 1",num);
for(k=2;k<num;k++)
if(num%k==0) printf(",%d",k);
printf("\n");}
}
return 0;
}
Private Function isws(m As Integer, splus As String) As Boolean
Dim i%, s%
For i = 1 To m / 2
If m Mod i = 0 Then
s = s + i
End If
Next i
If s = m Then '如果是完数,则重新循环,将各因子找出来
splus = m & "=1" '因为1是所有数的因子,所以先找出来,接下来的循环可以从2开始
For i = 2 To m / 2
If m Mod i = 0 Then
splus = splus & "+" & i
End If
Next i
isws = True
Else
isws = False
End If
End Function
Private Sub Form_Click()
Dim i%, sp$
Print "1000以内的完数为:"
For i = 1 To 1000
If isws(i, sp) Then Print sp 'sp是按地址传递的,所以得到的值是函数isws中最后生成的splus值
Next i
End Sub
绝对正确,给分哦
#include <iostream.h>
int main()
{
int number=1000;
int i=2,k,z,sum=0;
while( i<=number)
{ int j=0,sum=0;
int *p=new int[j];
for(k=i;k>=1;--k)
if(i%k==0)
{ p[j++]=i/k;}
for(z=0;z<j;++z)
sum+=p[z];sum-=i;
if(sum==i)
{ cout<<i<<" its factors are\n";
for( k=0;k<j-1;++k)
cout<<p[k]<<" ";
cout<<endl;
}
delete[] p;
i+=2;
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
int a,b,i,sum;
int factor[50];
for(a=1;a<=1000;a++)
{
sum=0;
i=0;
for(b=1;b<a;b++)
{
if(a%b==0)
{
factor[i++]=b;
sum=sum+b;
}
}
if(sum==a)
{
printf("%d it's factors are ",a);
for(b=0;b<i-1;b++)
printf("%d,",factor[b]);
printf("%d\n",factor[b]);
}
}
return 0;
}
C语言简单编程问题?
(DEV C++)
c=a*(1+b%);这一行中的问题。
要注意在C里面%不代表百分号,应该改成
c=a*(1+b*0.01);
不过这样运行结果是
我的建议是把%g改成%lf
改后代码
#include<stdio.h>
int main()
{
double a,b,c;
printf("Interest calculation program.\n");
printf("Starting balance?");
scanf("%lf",&a);
printf("Annual interest rate percentage?");
scanf("%lf",&b);
c=a*(1+b*0.01);
printf("Balance after one year:%.0lf\n",c);
getchar();
return 0;
}
运行结果