引用 | 編輯
翁賜維
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
|
引用 | 編輯
星辰雪
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 |