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

c語言求質因子

發布時間: 2024-05-04 02:10:56

c語言求質因子(質數且是輸入數的因子)最多的那個數

要找到滿足題意的數,

就是小於等於n的最大的2的冪,


證明:

假設這個數m是2^k,並且2^k小於等於n。

那麼它有k個質因子(都是2),

反證法:

假如某個數x有k+1個因子,

質數裡面最小的是2,那麼該數x一定滿足:

m<2^(k+1)<=x<=n

因為m是小於等於n的最大的2的冪,因此x不存在。


所以m就是小於等於n的最大的2的冪。

(注意這里說的是最多有k個因子,最小的是2^k,k個因子還可能是2^(k-1)*3,也是有可能的,但是就是不可能有k+1個因子)


代碼:

#include<stdio.h>
unsignedflp2(unsignedx)
{
x=x|(x>>1);
x=x|(x>>2);
x=x|(x>>4);
x=x|(x>>8);
x=x|(x>>16);
returnx-(x>>1);
}
intmain()
{
printf("%u",flp2(1000000000));
return0;
}

❷ c語言將一個正整數分解質因數,望高手幫我詳細解釋一下程序

1、首先打開vc6.0, 新建一個vc項目,添加頭文件。

❸ C語言,求一個整數的所有質因子。。謝謝大神,我是C語言小白。。

測試結果:

請輸入一個數N,N的所有質數因子:
520
2 5 13

源代碼:
#include "stdio.h"
#include "conio.h"
int isShuShu(int n)
{
int i;
for(i=2;i<=n/2;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
main()
{
int i;
int n=0;
printf("請輸入一個數N,N的所有質數因子:\n");
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{
if(n%i==0&&isShuShu(i))
{
printf("%3d ",i);
}
}
getch();
}

思路:
一個函數isShuSHU()用來判斷給定 的數是否是素數
從1到n的一般,一個一個排查,看那些數能整除N,且是素數。輸出即可

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

熱點內容
冷凍存儲盒 發布:2024-11-28 00:21:04 瀏覽:127
達內幼兒編程 發布:2024-11-28 00:21:02 瀏覽:320
我的世界下100層是什麼伺服器 發布:2024-11-28 00:16:50 瀏覽:548
怎麼改配置密碼 發布:2024-11-28 00:16:44 瀏覽:113
伺服器晶元v幾是什麼 發布:2024-11-28 00:15:37 瀏覽:599
家庭麥克需要什麼配置才能用 發布:2024-11-28 00:05:28 瀏覽:384
c語言then是什麼意思 發布:2024-11-27 23:54:07 瀏覽:195
提升訪問 發布:2024-11-27 23:41:39 瀏覽:821
為什麼學習編程 發布:2024-11-27 23:41:37 瀏覽:942
98編程 發布:2024-11-27 23:41:31 瀏覽:925