Ⅰ c语言中关于完数问题
第一个空: return 1
第二个空: fun(x)
前几天回答的时候,看到上楼的同志没有第二个,我也就没没注意到第二个问题,希望没耽误你的事~~~
Ⅱ c语言编程题 :判断一个数是不是完数
C语言程序如下:
#include "stdio.h"
int main()
{
int n,i,sum=0;//定义一个存放因子和的变量,以及需要判断的数n,和循环条件用到的i
printf("请输入需要判断的数:");
scanf("%d",&n);//存放需要判断的数n
for(i=1;i<n;i++)//循环条件找出因子并累加
{
if(n%i==0)
sum+=i;
}
if(n==sum)
printf("%d 是完数 ",n);
else
printf("%d 不是完数 ",n);
return 0;
}
(2)c语言简单编程之完数问题扩展阅读:
程序思路
假设一个数为n,我们可以用循环条件,让n分别和1,2,3,4,5……n-1进行判断是否能被整除,我们可以通过取余(%)的方法来进行判断。如果判断出来取余结果为0,那么就把这些因子全部加起来,得到因子的和。
接下来,将因子的和与n进行比较,如果相等,那么就是完数,反之不是完数。
判断一个完数,就是运用基本输入函数(scanf),将要判断的数据输入进来,之后运用循环条件来判断。
Ⅲ c语言程序设计 完全数问题
#include<stdio.h>
main()
{
int i,j,a,n;
scanf("%d",&n);
for(i=6;i<=n;i++)
{
a=0;//a=0放在这儿才行;
for(j=1;j<=i/2;j++)//是j<=i/2;
if(i%j==0)
a=a+j;
if(a==i)
printf("%d\n",i);
}
}
Ⅳ C语言完全数问题。
#include "math.h"
#include "stdio.h"
#include "conio.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{
x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
getch();
}
Ⅳ c语言完全数问题
int main ()
{
int m,n,a,i,e,f;
scanf("%d %d",&m,&n);
int count=0;//统计m n之间一共多少个符合要求
for(i=m;i<=n;i++)
{
e=sqrt(i+100);//一个数加100
f=sqrt(i+268);//一个数加268
if ( (sqrt(i+100)==e)&& (sqrt(i+268)==f) )
{
count+=1;//计数
printf("%d ",i);//打印
}
}
if( count==0)
{
printf ("no");//在m n之间全部检测结束,如果count依然等于0,才能打印no
}
return 0;
}
请采纳,谢谢。
Ⅵ C语言编程,完数问题!
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
绝对正确,给分哦
Ⅶ C语言如何编写完数程序
#include<stdio.h>
void main()
{
int i,t(0),m;
printf("请输入一个数:");
scnaf("%d",&m);
for(i=1;i<m;i++)
{
if(m%i==0)
t=t+i;
}
if (t==m)
printf("该数是完数");
else
printf("该数不是完数");
}
Ⅷ C语言程序设计 求完数
#include<stdio.h>
#include<math.h>
intw(intx)
{
inti,sum=1;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
sum+=i+x/i;
}
}
if(sum==x&&x!=1)
{
return1;
}
else
{
return0;
}
}
intmain()
{
inti,n,m,a[10],j;
scanf("%d%d",&n,&m);
for(i=n,j=0;i<=m;i++)
{
if(w(i))
{
a[j++]=i;
}
}
if(j==0)
{
printf("NIL ");
}
else
{
for(i=0;i<j;i++)
{
if(i<j-1)
{
printf("%d",a[i]);
}
else
{
printf("%d",a[i]);
}
}
}
return0;
}
Ⅸ c语言完数问题 请写一个程序,给出指定整数范围[a,b]内的所有完数,0 < a < b < 10000。一个数如果恰好
#include"stdio.h"
intmain(){
inta,b;
intsum=0;
scanf("%d%d",&a,&b);
for(intnum=a;num<=b;num++){
sum=num;
for(inti=1;i<num/2+1;i++){//处理每个数
if(num%i==0){//能被i整除
sum-=i;//减去一个因子
}
}
if(sum==0){
printf("%d ",num);//输出完数
}
}
return0;
}
Ⅹ C语言程序问题:求完数
修改了一下,能运行,没有改代码,就把括号改了一下
结果如下
#include<stdio.h>
intmain()
{
longintx,y,a,b,c;
for(x=1;x<=1000;x++)
{
ints[100];
a=1;
for(y=1;y<=x/2;y++)
{
if(x%y==0)
{
s[a]=y;
a++;
}
}
c=0;
for(b=1;b<=a;b++)
{
c=c+s[b];
if(x==c)
{
printf("%ditsfactorsare",x);
for(c=1;c<=b;c++)
printf("%d",s[c]);
printf(" ");
}
}
}
}