當前位置:首頁 » 編程語言 » c語言求完數因子
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求完數因子

發布時間: 2022-09-19 16:26:52

1. c語言:怎麼求完數

先定義一個數組a[]放各因數——一定有「1」
然後定義一個數組b[999]={1,2,3,4,5……}可以用for語句賦值int i,p;
for(i=0;i<=998;i++)
{for(p=1;p<=999;p++);
b[i]=p;}放1——999
然後用各各數——可再定義數組——去剩b[]
得余數為零的放到a[]再各各無素相加等於原來的剩數的,
就為真——用一個循環,一個int變數加一,直到 結束

2. 用C語言編程求完數

那叫完全數,這題可以用三重循環解決,外環一個一個找數,內環試驗是否全部能整除,中環試驗加起來是不是那個數,麻煩得很

3. c語言:列出完數及其因子

#include <stdio.h>
#include <conio.h>

void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //從1開始到1000循環結束
{
s=0;//初始化因子之和s為0

for(i=1;i<m;i++) //尋找在1到m之間,有多少m的因子
if(m%i==0) //如果m能整除i,則i為m的因子
s=s+i;//將因子累加

if(s==m) //如果因子之和等於這個數
printf("%d\t",s);//輸出
}

getch();
}

運行結果:
6 28 496
請參考

4. C語言,求完數因子

#include<stdio.h>inta[110];intmain(){intsum=0,i,n,j,sizes;printf("輸入一個數:");scanf("%d",&n);for(i=1;i<=n;i++){sum=0,sizes=0;for(j=1;j<i;j++){if(i%j==0){sum+=j;a[++sizes]=j;}}if(sum==i){printf("%disfactorsare:",i);for(j=1;j<=sizes;j++)printf(j==sizes?"%d. ":"%d,",a[j]);}}return0;}

開個數組儲存一下因子即可。

5. C語言求完數因子

#include<stdio.h>
inta[110];
intmain()
{
intsum=0,i,n,j,sizes;
printf("輸入一個數:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0,sizes=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
a[++sizes]=j;
}
}
if(sum==i)
{
printf("%disfactorsare:",i);
for(j=1;j<=sizes;j++)
printf(j==sizes?"%d. ":"%d,",a[j]);
}
}
return0;
}

開個數組儲存一下因子即可。

6. 用c語言求1000之內的完數 要求輸出完數的因子

#include "stdio.h"

//判斷n是否是完數
bool isWanShu(int n)
{
int sum=0, j;
for(j=1;j<n;j++)
{
if(0==n%j) sum+=j;
}
if(sum==n) {
printf("%d 是完數, ", n);
return true;
} else {
return false;
}
}
//輸出整數的n的因子(自身除外)
void printFactor(int n)
{
int i;
printf("%d 的因子: ", n);

for(i=1; i<n; i++) {
if(n%i==0) printf("%d ", i);
}
printf("\n");
}
int main()
{
int i;
for(i=1; i<=1000; i++) {
if ( isWanShu(i)) { //如果i是完數,則輸出它的因子。
printFactor(i);
}
}
return 0;
}

輸出結果:
6 是完數, 6 的因子: 1 2 3
28 是完數, 28 的因子: 1 2 4 7 14
496 是完數, 496 的因子: 1 2 4 8 16 31 62 124 248

7. c語言求解完數!

#include<stdio.h>
int main()
{
int i,j,sum=0;
int count=0;//計算完數的和
for(i=2;i<1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) sum=sum+j;
}
if(sum==i)
{
printf("%d 是完數\n",i);
count+=i;
}
sum=0;
}

printf("完數和為: %d\n",count);
return 0;
}

8. C語言求完數

int main()
{
int i,j,sum;
for(i=2;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
printf("It's a Perfect n:%d\n",i);
}
getchar();
getchar();
return 0;
}
我覺得temp,沒有用的必要,錯誤在於第一次循環之後sum的值已經不為0了,無法記錄下一個i 的因子之和,所以要在第一層循環里有sum=0;這個語句,現在你在試試,看看是不是運行正確了。

9. C語言函數輸出完數和因子

這是我編寫的 你編寫的 要注意 每次進行外循環都要把 s初始化為 0 否則就是用上一次的值

#include <stdio.h>
int main()
{
int i,j,n,sum;
printf("請輸入一個數:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("完數為:%d\t它的約數是:",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%4d",j);
printf("\n");
}
}
return 0;
}

10. c語言:列出完數及其因子

#include
void
main(
)
{
int
k,l,m,n;
printf("please
input
n:\n");
scanf("%d",&n);
for(k=1;k<=n;k++)
{
//求k值的因子,由於k/2到k之間沒有k的因子,故為提高效率,將for條件語句結束值設置為k/2
for(m=0,l=1;l<=k/2;l++)
if(!(k%l))
//k%l為k除l的余數,!(k%l)為k除l的余數為0,即k被l整除,l是k的因子
m+=l;//k的因子求和
if(m==k)//如果k的因子之和=k,則輸出
printf("%4d",k);//%4d為printf的輸出格式對齊,不夠4位補空格
}
}