Re: [問題] 關於質因數分析
剛好有碰到這問題,解決方式為
可以參考看看
#include<stdio.h>
#include<stdlib.h>
int is_prime(int);
int main(void)
{
int i,num;
printf("輸入正整數:\n");
scanf("%d",&num);
for(i=2;i<=num;i++)
if(is_prime(i)&&num%i==0)
printf("%3d",i);
system("pause");
return 0;
}
int is_prime(int num)
{
int i;
for(i=2;i<=num-1;i++)
if(num%i==0)
return 0;
return 1;
}
※ 引述《qDaniel (去Lava寫Java)》之銘言:
: 遇到的問題: (題意請描述清楚)
: 程式可以跑 但是沒有回應值
: 希望得到的正確結果:
: 輸入一個數字 回傳他的因數相承
: EX: input 50 ; output 50=2*5*5
: 程式跑出來的錯誤結果:
: 程式沒有回傳值
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: Dev-C++ 使用語言:C
: 補充說明:
: #include<stdio.h>
: #include<stdlib.h>
: #include<math.h>
: #define MAX 100
: int main(){
: int N; // 欲分解之N=數字大小
: int i, j=0; // i,j迴圈要使用
: int count=0; // count=總共幾個因數
: int value; // value=N用來做迴圈前的值
: int b[MAX]; // 將因數純在b陣列
: printf("value = ");
: scanf("%d",&N);
: value=N;
: while(N>1){
: for(i=2;i<=sqrt(N);i++){
: if(value%i == 0){
: b[j]=i;
: j++;
: count++; // 算總共幾個
: }
: }value=N/i;
: }
: printf("%d = ",N);
: for(j=0;j<=count;j++)
: printf("%d *",b[j]);
: system("pause");
: return 1;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
11
17