當前位置:首頁 » 編程語言 » c語言求因數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求因數

發布時間: 2022-01-19 11:31:51

『壹』 c語言分解質因數

這樣注釋的已經很好了啊
if(m%k!=0),說明還沒找到因數,每次都是從2開始,逐漸遞增,來找因數的
else,else部分,說明已經找到了因數,找到因數以後,先把因數列印出來,然後讓m等於被除後的數,讓k=2,也就是從2開始,繼續遞增找其他的因數啊

舉個例子,你就明白了,比如15,你要對它進行分解質因數,該怎麼做呢
先讓k=2,發現15%2!=0了,說明2不是它的因數,讓k++
k=3的時候,發現15%3==0了,說明3是它的一個因數,列印出3,讓m=15/3=5,讓k=2
5%2!=0,5%3!=0,5%4!=0,說明2,3,4,都不是5的因數,k繼續自加
k=5,5%5==0了,說明5是5的因數,所以,列印5,m=5/5=1,k=2,這時,就會退出for循環了

逐行分析,見下面:
if(m%k!=0) //m不能被k整除,說明k不是m的因數
{
k++; //就讓k自加1,判斷下一個數是不是m的因數
}
else //m不能被k整除,說明k是m的一個因數
{
printf("%d*",k); //把這個因數k,列印出去
m=m/k; //從m中把因數k去掉,如果不去掉,下一個又會找到因數k的,那樣就不對了
k=2;//讓k重新等於2,也就是重新從2開始找m的因數
}

『貳』 C語言怎樣高效求一個數的所有因數的和

參考代碼如下
#include<stdio.h>
int main()
{
int i,n,b;
long sum=0;
scanf("%d",&n);
sum=n;
printf("所有因數:");
for(i=1;i<=n/2;++i)
if(n%i==0){
printf("%d ",i);
sum+=i;
}
printf("%d ",n);
printf("\nsum=%d ",sum);
return 0;
}

『叄』 求一個整數的因數和 的C語言程序代碼

C語言實現,參考代碼如下:

#include<stdio.h>
intmain()
{
intn,i,sum=0;
scanf("%d",&n);
if(n<1)return0;
for(i=1;i<=n;++i)
if(n%i==0)
sum+=i;
printf("因數之和為%d",sum);
return0;
}

『肆』 C語言 求分解質因數

大略看了下,代碼打的時候就很多錯誤,你是不是把i打成1了?

『伍』 C語言程序,求一個數的分解因數

不是分解質因數,對嗎?
分解質因數簡單,分解因數要難些,利用回溯可以做,以下是我寫的代碼,看一看是否是你想要的。
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"

typedef int Integer[100];
Integer s;
int t=0;

int D;
void dd(int m,int n);

void main()
{
printf("輸入一個大於3的正整數:");
do
{
scanf("%d",&D);
if(D<=3)
{
printf("輸入錯誤,請重新輸入!");
}
else
{
break;
}
}while(D>3);
dd(2,D);
}

void dd(int m,int n)
{
int i,j,k;
i=m;
j=n;
if(i<=j/i)
{

if(j % i==0)
{
t=t+1;
s[t]=i;
for(k=1;k<=t;k++)
{
printf("%d*",s[k]);
}
printf("%d=%d\n",j/i,D);
dd(i,n/i);
t=t-1;
dd(i+1,j);
}
else
{
dd(i+1,j);
}
}

}

『陸』 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語言如何求出一個數的「因數」求源代碼

#include<stdio.h>
intmain(void)
{
intx,i=2;
printf("請輸入一個整數:");
scanf("%d",&x);
while(i<=x)
{
if(x%i==0)
{
printf("%d",i);
x=x/i;
i=2;
}
else
i++;
}
return0;
}

『捌』 求一個數的質因數。c語言編程

這個問題,首先,用篩選法找出質素,然後,遍歷這個素以內的所有素數,找到質因數!
#include <stdio.h>
#define MAX 1001
char a[MAX];
int main()
{
int i,j;
for(i = 2; i < MAX; i++)
{
if(a[i] == 0)
for(j = i+i; j < MAX; j += i)
a[j] = 1;
}
int n;
printf("Please enter a number:\n");
scanf("%d",&n);
for(i = 2; i <= n/2; i++)
{
if(a[i] == 0)
{
if(n % i == 0)
printf("%d ",i);
}
}
printf("\n");
}

『玖』 c語言求分解質因數

有這樣幾個問題:

  1. 聲明的二維數組是aaa,但代碼中應用時又變成了a,會產生a未定義錯誤。

  2. int aaa[3][100000];數組太大,建議使用全局變數或動態數組;改成int a[3][1000];更好。

  3. a[3][z]=a[1][j];這里和jj=a[3][z]*1;這里數組a都越界了。聲明的a第一維是3,即0、1、2,不可能有[3]。

    把這些錯誤改了再說。