『壹』 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個變數。