c語言求數的所有因子
㈠ 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;
}
編譯運行後的結果:
㈡ 怎麼用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語言輸出一個數的所有因數
從數學定義可以得知,一個數的因數范圍在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;
}
㈣ 用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;
}
(4)c語言求數的所有因子擴展閱讀:
數學概念
假如整數n除以m,結果是無余數的整數,那麼我們稱m就是n的因子。 需要注意的是,唯有被除數,除數,商皆為整數,余數為零時,此關系才成立。反過來說,稱n為m的倍數。
要留意的是:有一種說法是「因子不限正負」,不過通常情況下只取正因子。
1, -1, n 和 -n 這些數叫做 n 的明顯因子
㈤ 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;
}