2012年2月7日火曜日

素因数分解

教科書に素因数を求めろみたいな問題があって、求めるだけかよとか思いつつさっさと作った

#include<cstdio>
using namespace std;
class prime{
 public:
  void factorization(void);
  void setn(int a){
   n = a;
  }
 private:
  int n;
};

void prime::factorization(void){
 int x = n;
 int k = 2, m;
 printf("%d = ",n);
 while(1){
  m = k * k;
  if(x < m){
   printf("%d",x);
   x = 1;
  }else{
   while(x % k == 0){
    x = x / k;
    printf("%d",k);
    if(x != 1){
     printf(" * ");
    }
   }
  }
  if(x == 1)
   break;
  k++;
 }
 putchar('\n');
}

int main(void){
 int d;
 scanf("%d",&d);
 prime t;
 t.setn(d);
 t.factorization();
 return 0;
}
こうして見ると何がなんだか分からん。とりあえず今日はこれで。

0 件のコメント:

コメントを投稿