【C語言】質因數分解


Recommended Posts

#include <stdio.h>
#include <stdlib.h>

int main()
{
int set,testa,testb,count,k;

printf("輸入一個正整數做質因數分解:");
scanf("%d",&set);

for(testa = 2 ; testa<=set ; testa++)
{
count = 0;
for(testb = 1 ; testb <= testa ; testb++)
{
if(testa%testb==0)
{
count++;
}
}
if(count==2)
{
if(set%testa ==0)
{
for(k=1;k<=set;k++)
{
if(set%testa^k==0)
{
printf("%d ",testa);
}
}
}
}
}
system("PAUSE");
return 0;
}

執行的結果是沒有跑出任何東西...輸入完數字之後就"請按任意鍵繼續"

請問哪個部分寫錯了?

※:預期的執行結果

輸入一個正整數

列出他的質因數分解

※:想法:

1.要求使用者設定一個正整數

2.從2開始,取testa/testb(從1開始到testa)的餘數(若為0,則計數器+1)

3.若計數器=2,則判斷為質數

4.若為質數,則取set/testa的餘數,若為0則開始以下迴圈

5.設定一個k(作為次方數),判斷set/testa的餘數,若為0則輸出testa

此內容已被編輯, ,由 j100002ben
鏈接文章
分享到其他網站
  • 3 months later...

#include<stdio.h>

#include<cstdlib>

using namespace std;

void fun(int);

int main (void)

{

int set;

printf("輸入一個正整數做質因數分解:");

scanf("%d",&set);

fun(set);

system("pause");

return 0;

}

void fun(int n){

int a[1000]={0};

int k=0;

for(int i=2;i<1000;i++){

for(;n%i==0;k++)n/=i;

a=k;

k=0;

}

for(int i=0;i<100;i++){

if(a!=0)printf("%d^%d ",i,a);}

return;

}

此內容已被編輯, ,由 DUM
鏈接文章
分享到其他網站

請登入後來留意見

在登入之後,您才能留意見



立即登入