当前位置:首页 » 编程语言 » c语言求一定范围内的完全数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求一定范围内的完全数

发布时间: 2022-07-05 09:02:41

‘壹’ c语言求 1000以内的完全数

重置sum的位置错了,放到内循环的开头:

#include<stdio.h>
intwanquanshu()
{
intn,i,k,sum;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
sum=0;//放在这里
for(k=1;k<i;k++)
{

if(i%k==0)
{
sum=sum+k;
}
}
if(sum==i)
{
printf("%d ",i);
}
}
}
return0;
}
voidmain()
{
wanquanshu();
}

‘贰’ c语言求2到1000内的所有完数【在线求各位赐教】

#include<stdio.h>
intmain()
{ inta,i,i1,sum=0;
scanf("%d",&a);//输入一个计算的范围数据
for(i=1;i<=a;i++)//范围数据累加循环
{
for(i1=1;i1<i;i1++)//完全数不包含本身所以i1<i
{
if(i%i1==0)//mod余为0
{
sum=sum+i1;//累加结果
}

}
if(sum==i)//判断是否是完全数
{
printf("%d是完全数,分别由",sum);//输出
for(i1=1;i1<sum;i1++)
{
if(sum%i1==0)
printf("%d",i1);
}
printf("这些数组成 ");

}
sum=0;
}
return0;
}

//=============以下是根据你的源码改动一了下,对比一下就知道哪错了============
/*
#include<stdio.h>
voidmain()
{
inta,b,s=0;
for(a=2;a<=1000;a++)
{
for(b=1;b<a;b++)
{
if(a%b==0)
s=s+b;
}
if(s==a)
printf("%d ",s);
s=0;//这里s必须置0,否则再次循环,s初始值就是上次的值。
}
return0;
}
*/

‘叁’ c语言求完全数

#include<stdio.h>

intmain(void){

inti,count,j,sum;

sum=0;

count=0;

for(i=2;count<3;i++)//<-----------

{

for(j=1,sum=0;j<i;j++)//<------------

{

if(i%j==0)

sum+=j;

}

if(sum==i)

{

printf("%d ",sum);

count++;

}

}

return0;

}

‘肆’ C语言求n以内的全部完全数

int main()
{
int n,k,i,sum;
printf("请输入一个正整数\n");
scanf("%d",&n);
printf("全部完全数为");
for(i=1;i<=n;i++)
{ sum=0; //添加这一行 就行了
for(k=1;k<i;k++)
{
if(i%k==0)
sum+=k;
}
if(sum==i)
printf("%d",i);
}
}

‘伍’ c语言中求一定范围内的完数

两种方法:使用gcc或clang -std=c99 编译

#include<stdio.h>
#include<string.h>
#defineMAX10

voidmethod1(unsignednumber);
voidmethod2(unsignednumber);

intmain(intargc,char*argv[])
{
unsignednumber;
scanf("%u",&number);
method1(number);
method2(number);
return0;
}

voidmethod1(unsignednumber){
charbuffer[MAX];
intn=sprintf(buffer,"%u",number);
for(inti=0;i<=n;++i)
printf("%c",buffer[i]);
printf(" ");
}

voidmethod2(unsignednumber){
intdigits[MAX]={[0...MAX-1]=-1};
for(inti=9;i>=0&&number>0;--i){
digits[i]=number%10;
number=number/10;
}
for(inti=0;i<MAX;++i)
if(digits[i]!=-1)
printf("%d",digits[i]);
printf(" ");
}

‘陆’ C语言编程:求出1000以内的完全数(详细讲解一下思路)

#include<stdio.h>
main()
{
int i,j,sum;
for(i=2;i<1000;i++) //完全数i的范围2-1000
{
sum=0;
for(j=1;j<=i/2;j++) //求i的因子,j<=i/2为了减少循环次数
{
if(i%j==0) //如果i除以j的余数为0,就说明是因子
sum=sum+j;//求因子的和
}
if(sum==i) //如果因子等于i,就说明是完全数
printf("%4d",i); //输出i
}
}

‘柒’ C语言求完全数~~

#include<stdio.h>
void isPerfect(int m){ //定义判断一个数是否为完全数的函数isPerfect
int i,sum=0;
for(i=1;i<=m/2;i++){
if(m%i==0){
sum+=i;
}
}
if(sum==m){
printf("你输入的这个数是完全数\n");
}
else
printf("你输入的这个数不是完全数\n");
}
main(){
int a;
printf("请输入一个整数a:\n");
scanf("%d",&a);
isPerfect(a);//调用这个函数
}

‘捌’ 求c语言如何输出一定范围内不重复的全部数完整代码

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main()
{
int n=100;
int a[1000],i,j,T,tmp;
srand(unsigned(time(NULL)));
for(i=0;i<n;i++)
a[i]=i;
T=n*10;
while(T--)
{
i=rand()%n;
j=rand()%n;
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
for(i=0;i<n;i++)printf("%d ",a[i]);
puts("");
return 0;
}

‘玖’ 用c语言编写出2到10000之间的完全数

思路:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。如果一个数恰好等于它的因子之和,则称该数为“完全数”。先定义一个函数用于判断一个数是否是完数,接着依次从2到10000循环判断。

参考代码:

#include<stdio.h>
intfun(intn){//判断n是否是完数
inti,sum=0;
for(i=1;i<n;i++)
if(n%i==0)sum+=i;
if(sum==i)return1;
return0;
}
intmain()
{
inti;
for(i=2;i<10000;i++)
if(fun(i))
printf("%d",i);
return0;
}
/*
运行结果:
6284968128
*/

‘拾’ 运用c语言输出100以内所有的完全数

1、首先打开vs 2017软件,打开一个准备好的工程,新建一个C语言文件,先写入头文件和main函数,里面定义需要的用到的4个变量。