當前位置:首頁 » 編程語言 » C語言中如何計算因子
擴展閱讀
web的頁面布局 2023-01-29 04:27:35
web憑證刪了還能恢復么 2023-01-29 04:27:34
mysql55資料庫下載 2023-01-29 04:25:03

C語言中如何計算因子

發布時間: 2022-11-27 00:14:43

1. 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;
}

2. 用C語言:計算並輸出給定整數N的所有因子(不包括1與自身)之和

思路:輸入一個數n,接著for循環從2到n-1依次整除n,如果能被整除則累加,最後輸出累加和。

參考代碼:

#include<stdio.h>
intmain()
{
intn,i,sum=0;
scanf("%d",&n);
for(i=2;i<n;i++)
if(n%i==0)
sum+=i;
printf("累加和為:%d ",sum);
return0;
}
/*
6
累加和為:5
*/

3. C語言:編寫函數,計算出形參n的所有因子之和(包括1與自身)

#include "stdio.h"

int fun(int n)

{int i,s=n+1;

for(i=2;i*i<n;i++)

if(n%i==0)s+=i+n/i;

if(i*i==n)s+=i;

return s;

}

main()

{ int k;

scanf("%d",&k);

printf("%d ",fun(k));

}

4. 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;

}

(4)C語言中如何計算因子擴展閱讀:

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

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

表示方法:可以用因子|倍數或倍數≡0 (mod 因子) 來表達(參見同餘),但用後者時因子一定要是正因子。因子∣倍數式中的垂直線是整除符號。它的統一碼值是 U+2223。

例如 42=6x7,因此 7 是 42 的因子,寫作 7∣42,亦是42≡0(mod 7)。



5. 怎麼用c語言來輸出一個數的因子個數

設所需計算的數是N,首先N/2,若N為奇數,則(N-1)/2,然後對N/2或(N-1)/2求余,用for循環
a=N/2(若N為奇數就(N-1)/2)
for(i=1;i<=a;i++){
if(a%i==0)
count++;
}
最後count乘以2就行了

6. C語言:編寫一個函數,求出一個給定數字的所有因子。

1.對1~本身的各個數取余,為零的即為其因子。

#include<stdio.h>

voidfactor(intn)
{
printf("%dfactorhas:",n);
for(inti=1;i<=n;i++)
{
if(n%i==0)
printf("%d",i);
}
printf(" ");
}

intmain()
{
factor(27);
factor(100);
return0;
}

7. c++ 中求一個數的因子,因子是什麼

  1. 因子:基本含義為「元素、因素、成分」,一般在編程中,因子指因數。

  2. 因數:假如a÷b=c(a、b、c都是整數),那麼我們稱b和c就是a的因數。 需要注意的是,唯有被除數,除數,商皆為整數,余數為零時,此關系才成立。

  3. C++ 中求一個數 N 的因數的演算法:

    for(i=1;i<=N;i++)//從1枚舉到N
    if(N%i==0)cout<<i<<endl;//如果N能被i整除,i就是一個因數

8. c語言編程:求一個數的質因子

#include<stdio.h>
intmain()
{
inti,j,a[999999],x,y;
scanf("%d",&x);//讀取
y=x;
for(i=2,j=0;i<=x;i++)//遍歷質因數
{
if(x%i==0)//如果讀取的數能夠被質因數整除
{
a[j]=i;//將符合條件的質因數存到數組中
j++;//數組下標遞增
x/=i;//重新賦值
i=2;//重新遍歷
}
}
printf("%d=%d",y,a[0]);//輸出原數、等號、第一個質因數
for(i=1;i<j;i++)
printf("×%d",a[i]);//如果存在第二個質因數,則繼續輸出
return0;
}

9. C語言,求函數因子

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

10. 用C語言編寫一個函數factors,求出一個正整數的所有因子。

#include

#include
//數學函數頭文件
main()
{
int
m,i,k=0;
printf("請你輸入一個正整數:\n");
scanf("%d",&m);
printf("%d
的因子有:\n",m);
for(i=1;i<=m;i++)
{
if(m%i==0)
{
printf("%6d",i);
k++;
if(k%5==0)printf("\n");
//每五個數換一次行
}
}
getchar();
getchar();
}
你上機運行一下吧,結果是對的,有不明白的地方可以再找我……