當前位置:首頁 » 編程語言 » c語言求一個數的因子個數

c語言求一個數的因子個數

發布時間: 2022-08-20 01:12:34

① 怎麼用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就行了

② 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;

}

(2)c語言求一個數的因子個數擴展閱讀:

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

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

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

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



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

④ c語言問題 編寫一個函數,求出一個給定的數字的所有因子,如72=2*2*2*3*3.

#include<stdio.h>
void main()
{
int x,y,i=2,j=0,m;
printf("輸入數字:");
scanf("%d",&x);
m=x;
int a[15]={0};
//設定一個范圍足夠的數組存放因子
while(i<=x)
{
if((x%i)==0) { x=x/i ;a[j]=i; j++; i=2;}
else i++;
//由於一個數的因子會小於或等於本身,所以可以
//以此設定跳出條件,用遍歷的思想去從2開始逐個尋找因子
//如果那個數是因子之一則可以被整除if((x%i)==0)
//以此作為判斷條件,而一個數的因子可能會重復
//所以每找到一個就要有重頭開始再判斷一邊
//i=2;就是作為復位的,其實這個程序和演算法很簡單
//你自己多看兩遍就明白了
//如果還有不懂得就直接上我的空間找我好了
}
printf("y=");

if(j==0) printf("%d\n",m);
//這是特殊情況質數
else
{
for(i=0;i<j-1;i++) if(a[i]!=0) printf("%d*",a[i]);
printf("%d\n",a[i]);
}

}

⑤ 用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();
}
你上機運行一下吧,結果是對的,有不明白的地方可以再找我……

⑥ 用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;

}

(6)c語言求一個數的因子個數擴展閱讀:

數學概念

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

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

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

⑦ C語言題(因子個數)

你這是求因數個數,不是因子個數。
第二行 51這個數 1 3 17 51.四個因數,輸出卻是6.

題目到底什麼意思

⑧ C語言指針輸入一個數算他的因子有幾個

#include<stdio.h>

int main()

{

int *p,sum=0;//定義一個指針變數後,p就代表地址(指針),*p就是變數值;

scanf("%d",&*p);

for(int i=1;i<*p;i++)

if(*p%i==0)

{

sum++;

printf("%d ",i);

}

printf(" %d",sum);

return 0;

}//【指針符(*)】+【指針(p)】==【變數值】;

熱點內容
電腦都連不上伺服器說ip不對 發布:2025-01-19 12:52:24 瀏覽:625
linux解壓到文件夾命令 發布:2025-01-19 12:43:20 瀏覽:425
父母訪問 發布:2025-01-19 12:33:05 瀏覽:794
加密文件如何編輯 發布:2025-01-19 12:31:18 瀏覽:219
androiddpi 發布:2025-01-19 12:21:15 瀏覽:655
伺服器鎖了怎麼解 發布:2025-01-19 12:06:58 瀏覽:301
DH演算法使用 發布:2025-01-19 11:57:30 瀏覽:932
Wcl上傳如何選擇伺服器 發布:2025-01-19 11:17:24 瀏覽:763
如何編程簡單給伺服器發一個指令 發布:2025-01-19 11:16:44 瀏覽:806
python控制台亂碼 發布:2025-01-19 10:55:38 瀏覽:364