c語言完數輸出因子
1. c語言編程:找出200以內所有完數,並輸出其因子 例如輸出6=1+2+3
#include <stdio.h>
int Perfect(int);
void PerfectShow(int,int);
void main()
{
int num=200;
int judge=0,i;
for(i=0;i<=200;i++)
{
judge=Perfect(i);
if(judge>1)
{
PerfectShow(i,judge);
printf("\n");
}
}
getch();
}
int Perfect(int num)
{
int max,sum=0;
int i;
for(i=1;i<num;i++)
{
if(num%i==0)
{
max=i;
sum=sum+i;
}
if(sum==num)
{
return max;
}
else
{
}
}
return 1;
}
void PerfectShow(int num,int max)
{
int out,i;
printf("%d = ",num);
for(i=1;i<num;i++)
{
if(num%i==0)
{
printf("%d",i);
if(i==max)
{
return;
}
else
printf("+");
}
}
}
2. c語言輸出一個數的所有因數
從數學定義可以得知,一個數的因數范圍在1到該數本身。所以只需要從1到該數遍歷,逐個嘗試模除,可以整除的則為因數,將所有符合條件的數列印即可。
代碼如下:
#include<stdio.h>
intmain()
{
intn,i;
scanf("%d",&n);//輸入要輸出因數的值。
for(i=1;i<=n;i++)
{
if(n%i==0)printf("%d,",i);//輸出因數。
}
return0;
}
3. 如何用 C語言 輸出一個整數的因子
假如整數n除以m,結果是無余數的整數,那麼我們稱m就是n的因子。 需要注意的是,唯有被除數,除數,商皆為整數,余數為零時,此關系才成立。反過來說,我們稱n為m的倍數 。
如果利用C語言求一個整數n的因子,可以從1開始到n,依次加1,如果它是n的的因子,則輸出。
具體的源碼實現如下:
#include<stdio.h>
#include<stdlib.h>
intmain(intargc,char*argv[])
{
intn;
while(scanf("%d",&n)!=EOF)
{
if(n<1)break;
inti;
for(i=1;i<=n;i++)
{
if(n%i==0)
printf("%d",i);
}
printf(" ");
}
return0;
}
編譯運行後的結果:
4. 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
請參考
5. 用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
6. c語言完數輸出因子
#includeintyinzi(intn);intwanshu(intn);intmain(){inti;for(i=1;i
7. 編寫一段C語言程序,功能為:找出1000之內的所有完數,並按下面格式輸出其因子。
#include <stdio.h>
int main()
{
int i,j,sum;
for(i=2;i<1000;++i)
{
for(j=1,sum=0;j<i;++j)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
printf("%d: its factors are 1",i);
for(j=2;j<i;++j)
{
if(i%j==0)
{
printf(",%d",j);
}
}
printf(" ");
}
}
return 0;
}
8. 編程找出1000以內的所有完全數,並輸出使該數成為完全數的因子。(c語言)
完數是大於等於1、小於自身的所有因子之和與自身相等的數。先求因子之和,再與其比較,相等時再由小到大求各因子依次輸出,並在之間用'+'連接起來。舉例代碼如下:
#include"stdio.h"
intmain(intargc,char*argv[]){
intn,m,i,t;
for(n=6;n<=1000;n+=2){
for(m=1,t=n>>1,i=2;i<=t;i++)//求所有因子之和
if(n%i==0)
m+=i;
if(m==n){//因子和與自身比較是否相等
printf("%4d=1",n);
for(i=2;i<=t;i++)//若相等則再求因子並輸出
if(n%i==0)
printf("+%d",i);
printf(" ");
}
}
return0;
}
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;
}