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

質因子c語言

發布時間: 2022-04-22 17:06:47

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語言求質因子(質數且是輸入數的因子)最多的那個數

要找到滿足題意的數,

就是小於等於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語言編譯程序:求解質因子

程序如下:

#include<iostream>

#include<iomanip>

usingnamespacestd;

voidPdzyz(intx)

{

inti,j;

for(i=1,j=0;i<=x;i++)

if(x%i==0)

j++;

if(j==2)

printf("%5d",x);

}

voidQjzyz(intx)

{

inti;

scanf("%d",&x);

for(i=2;i<=x;i++)

if(x%i==0)

{

Pdzyz(i);

x=x/i;

i=1;

}

printf(" ");

}

intmain()

{intx;

do{

cout<<"inputanintegerabove1:"<<endl;

cin>>x;

}

while(x<=1);

Qjzyz(x);

return0;

}

輸入一個大於1的數字,接下來是判斷,如果大於1,再輸入一個要求質因解的數,然後輸出質因解。程序執行截圖如下:

Ⅳ c語言質因數分解題目怎麼做

#include<stdio.h>

#include<math.h>

int main() {

long long n,i,j,k;

while(~scanf("%ld",&n)) {

k=1;

for(i=2; i<=sqrt(n); i++) {

j=0;

if(n%i==0) {

if(k)k=0;

else printf("*");

printf("%ld",i);

while(n%i==0) {

j++;

n/=i;

}

if(j>1)printf("^%ld",j);

}

}

if(n>1)

if(k)printf("%ld",n);

else printf("*%ld",n);

printf("\n");

}

return 0;

}

Ⅳ C語言 求質因子

#include <stdio.h>
main()
{
int issushu(int);

int m,i;
printf("Please input a number(>0): ");
scanf("%d",&m);
printf("\nThe all Prime factors are: \n");

for(i=1;i<m;i++)
if(0==m%i)
if(issushu(i))
printf("%d ",i);
return 0;

}

int issushu(int n)
{
int i;
if(n<2) return 0;
if(n==2) return 1;
if(n>2 && n%2==0) return 0;
for(i=3;i*i<=n;i+=2)
if(n%i==0) return 0;
return 1;
}

Ⅵ c語言程序:輸出一個數的所有質因子

版本1:
#include<stdio.h>
#include<stdlib.h>

intmain(intargc,char*argv[]){
intprime=atoi(argv[1]);
printf("Theprimeis%d ",prime);
for(inti=1;i<=prime;i++)
{
if(prime%i==0){
printf("%d",i);
}
}
printf(" ");
}

版本2:
#include<stdio.h>
intmain(){
intprime;
scanf("%d",&prime);
printf("Theprimeis%d ",prime);
for(inti=1;i<=prime;i++)
{
if(prime%i==0){
printf("%d",i);
}
}
printf(" ");
}

直接復制粘貼即可!

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

Ⅷ 求助c語言編程題目質因數分解

因為使用for循環從小到大判斷其因數,而質數在由其組成的合數前面,所以如果i是n的因數,那麼i一定是質因數,而且質因數會從小到大輸出.

具體編程時,我們還應該使用n=n/i;,使for循環能快速滿足終止條件,節省運行時間.用i--;,處理有多個重復質因數的情況.用count來統計相同質因數的個數.

具體的解釋見注釋

#include<stdio.h>

int main(){

//n輸入的要分解的數,m前一個質因數,i循環變數

//flag第一個輸出的質因數的標志變數,count統計有幾個相同的質因數

int n,m,i,flag,count;

while(scanf("%d",&n)==1){//輸入一個數n,直到一次輸入的參數個數不等於1

flag=1;//第一次輸出的質因數的標志為1

m=0;//前一個質因數賦初值為0

count=1;//相同質因數個數為1

for(i=2;i<=n;i++){ //for循環從2到n

if(n%i==0){//如果n能被i整除,則i為質因數

if(m==i){//如果質因數與前一個質因數相同

count++;//相同質因數個數加一

}else{//如果質因數與前一個質因數不同

if(flag==1){//如果是第一次輸出

printf("%d",i);//輸出第一個質因數

flag=0;//把標志變數置0,後面輸出的質因數都不是第一個了

}else{//不是第一次輸出

if(count==1){//有一個不相同的質因數輸出

printf("*%d",i);//輸出不相同的質因數

}else{//有多個相同的質因數輸出

printf("^%d",count);//輸出相同的質因數個數

count=1;//重置相同質因數個數為1

printf("*%d",i);//輸出新的不同的質因數

}

}

}

m=i;//把當前質因數賦給存儲前一個質因數的變數m

n=n/i;//改變循環范圍n為n/i後的值

i--;//i減一,以處理有多個相同質因數的情況

}

}

if(count>1) printf("^%d",count);//如果有多個相同質因數,輸出其個數

printf(" ");//換行

}

return 0;

}

Ⅸ 質因子 C語言 編程

#include"stdio.h"
void main()
{
int i=2,n;
printf("請輸入數:\n");
scanf("%d",&n);
while(i<n)
{
if(n/i==float(n/i))
{
printf("%d\t",i);
n=n/i;
if(n==1)
break;
continue;
}
i++;
}
}

Ⅹ C語言,數組中的質因數

按照題目要求編寫的數組中的質因數的C語言程序如下

#include<stdio.h>

voidf(){

intn,a[100],count=0,k;

scanf("%d",&n);

for(k=2;k<n;k++)

{

if(n%k==0)

{

a[count]=k;

count++;

n=n/k;

k--;

}

}

a[count]=n;

for(k=0;k<=count;k++)

{

printf("%d ",a[k]);

}

}

intmain(){

f();

return0;

}

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:609
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:29
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:104
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:736
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:800
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:507
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:369