質因數分解

Home Home
引用 | 編輯 翁賜維
2010-01-24 14:47
樓主
推文 x0
以下是質因數分解的程式碼

#include<iostream>
#include<cstdlib>
using namespace std;     

void prime(int,int);
int main()
{
 int x,i;
 cout << "請輸入數字 : ";   
 cin >> x;
 cout << x << "=";
 
 for(i=2;i<=x;i++)            
 { 
  if(x%i == 0)
   break;
 }
 if(i == x)                //在紅色部分迴圈後再判斷出是否為質數 
  cout << x << "^1" << endl;
 else
 {
  for(int j=x-1;j>=2;j--)  ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 k7138
2011-03-25 06:47
1樓
  
如果考試能用就方便多了

獻花 x0
引用 | 編輯 csr
2011-05-27 21:36
2樓
  
一個很好地示範題
copy來研究
謝謝

獻花 x0
引用 | 編輯 星辰雪
2011-05-28 23:05
3樓
  
以20來舉例
會跑出以下
20=2^2*5^1

我覺得
跑出這樣就可以了
20=2^2*5

複製程式
#include<stdio.h>
#include<stdlib.h>

int main(){
    int a,i,t,b[1000]={0},c;
    while(scanf("%d",&a)!=EOF){
        c=0;
   if(a%2==0){
   b[c]=2;
   for(t=0;a%2==0;t++){
   a/=2;
   }
   if(t>1) b[c+1]=t;
   c=c+2;
   }
        
        for(i=3;i<=a;i+=2){
            if(a%i==0){
   b[c]=i;
   for(t=0;a%i==0;t++){
   a/=i;
   }
   b[c+1]=t;
   c=c+2;
      }
   }
   
   for(i=0;i<=c-2;i=i+2){
   if(b[i+1]>1) printf("%d^%d",b[i],b[i+1]);
   else printf("%d",b[i]);
   if(i<=c-4)printf(" * ");
   }
        printf("\n");
 }
 return 0;
}


獻花 x0
引用 | 編輯 TKCS
2011-06-05 17:04
4樓
  
不錯的範例 希望可以考試時用上 表情

獻花 x0