當前位置:首頁 » 編程語言 » 因子c語言

因子c語言

發布時間: 2022-02-26 18:49:24

c語言 因子數和

n為范圍指求從1到n的完數
(k/2)是指因子的上限。
k為可能的完全數,
if(!(k%i)) m+=i; 是指如果i能夠被k整除,
那i就是k的因子,
且m為所有因子的和。
if(m==k) printf("%4d",k);是指如果因子之和
等於k,則k就為完數,並輸出來。

如果還有什麼不懂的,可以聯系我。

❷ c語言因子分解

修改如下:

//---------------------------------------------------------------------------

#include<stdio.h>
#include<conio.h>
int main()
{
int a;
void num(int n); //注意這里
while(scanf("%d",&a)!=EOF)
{

num(a); //注意這里
}
getch();
}
void num(int n) //注意這里
{
int i;
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d ",i);
n=n/i;
}
else
{
break;
}
}
}
printf("%d",n);
}
//---------------------------------------------------------------------------

❸ C語言,求函數因子

一開始定義int m=0沒必要,就是m就可以了。
循環中要定義m=0,這樣,對於每一個i,m最終都得到i因子的和,然後將m與i比較,如果相等,則i是完數,輸出完數i。對於下一個i,m=0的作用是將m及時恢復0,這樣才能得到i因子的和,否則就是對於各個i,m的值一直累加了。

❹ 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;
}

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

❺ 用c語言求一個數的所有因子

C語言程序如下:

#include <stdio.h>

# include <stdlib.h>

#define N 100

long factor(int m,int fac[],int *cp){

int c1,c2,i,k;

long s;

fac[0]=1;

for(c1=s=1,c2=N-1,i=2;;){

k=m/i;

if(m%i==0){

if(i!=k){

fac[c1++]=i;

fac[c2--]=k;

s+=i+k;

printf("i=%d k=%d ",i,k);

}else{

fac[c1++]=i;

s+=i;

}

}

i++;

if(i>=k) break;//這個時候k已經開始等於自身的根號,或者將要出現和之前k對稱的i,引起自身重復故退出

}

for(c2++;c2<=N-1;c2++){

fac[c1++]=fac[c2];

printf("%s %d ","**",fac[c2]);

}

*cp=c1;

return s;

}

int main(int argc, char const *argv[])

{

/* code */

int factors[N],i,count;

long sum;

sum = factor(atoi(argv[1]),factors,&count);

for(i=0;i<count;i++){

printf("%5d",factors[i]);

}

printf(" ");

printf("sum=%5ld count=%5d ",sum,count);

return 0;

}

(5)因子c語言擴展閱讀:

數學概念

假如整數n除以m,結果是無余數的整數,那麼我們稱m就是n的因子。 需要注意的是,唯有被除數,除數,商皆為整數,余數為零時,此關系才成立。反過來說,稱n為m的倍數。

要留意的是:有一種說法是「因子不限正負」,不過通常情況下只取正因子。

1, -1, n 和 -n 這些數叫做 n 的明顯因子

❻ C語言 因子計算

你這里最主要的錯誤就是t==0,應該是t=0這樣才是賦值
另外,你的輸出不應該放在循環外面,還按你的模板把這兩個改一下應該就能對了
也就是
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,t,n;
t=0; //就是這里要用=,==是用來判斷是否相等的
scanf("%d",&n); //n為要判斷的數
for(i=1;i<n;i++){
if(n%i==0)
t=i+t; //求這個數個各因子的和
}
if(t==n) //如果相等的話,要放在循環外,這樣t才是所有因子的和
printf("%d",n); //列印這個數
system("pause");
return 0;
}
但是你這個程序僅僅是判斷一個數n是不是完數,你給的題的意思好像要判斷n以內所有的
那就要這樣
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,t,n;
scanf("%d",&n); //n為要判斷的數
for(i=1;i<=n;i++){ //此時遍歷的i不為求因子,而為判斷i是不是完數,這個循環內的模板與上一個程序是類似的
t=0;
for(j=1;j<i;j++)//求這個數個各因子的和,此時j用來判斷是不是因子
{
if(i%j==0)
t=j+t;
}
if(i==t) //如果相等的話
printf("%d\n",i); //列印這個數,這時要一個\n回車,以區分各數
}

system("pause");
return 0;
}

❼ c語言 因子

#include <stdio.h>

int main()
{
int n;

printf("輸入:");
scanf("%d",&n);

int factor=2;

printf("1,");
while(n>1)
{
if ( n % factor == 0)
{
printf("%d,",factor);
n = n / factor;
}
else
{
factor++;
}
}

printf("\n");

}

❽ 用C語言輸出 一個整數的所有因子

main() {
int x,i;
printf("請輸入一個整數:");
scanf("%d",&x);
printf("%d的因子有:", x);
for(i=1;i<=x/2;i++)
if(x%i==0)
printf("%d ",i);
printf("\n");
}

❾ 用C語言:求一個數的因子和(因子不包括自身)

#include<stdio.h>
intmain()
{
intn,i,s;
while(scanf("%d",&n)!=EOF)
{
s=1;//如果不需要包含1,可改為s=0
printf("因子列表:%d",s);
for(i=2;i<=n/2+1;i++)
{
if(n%i==0)
{
printf("%d",i);
s+=i;
}
}
printf(" 因子和:s=%d ",s);
}
return0;
}

熱點內容
java記事本程序 發布:2025-01-10 22:38:27 瀏覽:665
如何通過網吧電腦進入網吧伺服器 發布:2025-01-10 22:22:30 瀏覽:706
資料庫緩存是什麼 發布:2025-01-10 22:21:05 瀏覽:386
dns配置出現錯誤該怎麼辦 發布:2025-01-10 22:13:00 瀏覽:439
雲頂演算法 發布:2025-01-10 22:10:07 瀏覽:990
收件伺服器有什麼作用 發布:2025-01-10 21:50:01 瀏覽:391
安卓70緩存 發布:2025-01-10 21:49:03 瀏覽:684
圖像檢索演算法 發布:2025-01-10 21:43:58 瀏覽:559
plsqlforupdate 發布:2025-01-10 21:43:50 瀏覽:917
如何設置健康碼快捷方式vivo安卓 發布:2025-01-10 21:39:52 瀏覽:504