//MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

题目地址:
         http://acm.hdu.edu.cn/showproblem.php?pid=1164
题目描述:
         把一个数拆分成素数的乘积.

素数的水题 ,  只要把素数提取出来, 暴力就可以了.
代码如下 :
//MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

#include 
<iostream>
using namespace std;
int num[70001];
int main ()
{
    
for ( int i = 2; i <= 70000++ i )
    {
          
if ( !num[i] )
          
for ( int j = 2; i * j <= 70000++ j )
          {
                num[i
*j] = 1
          } 
    }
    
int N;
    
while ( cin >> N )
    {
           
int n = N;
           
int f = 1;
           
while ( n != 1 )
           {     
                  
int i = 2;
                  
for ( ; i <= 65535++ i )
                  {
                        
if ( !num[i] && n % i == 0 )
                        {
                              
if ( f )
                              {
                                   cout 
<< i; 
                                   f 
= 0;
                              }
                              
else
                              {
                                   cout 
<< "*" << i; 
                              }
                              
break;
                        } 
                  } 
                  n 
/= i;
           } 
           cout 
<< endl;
    }
//    getchar();
    return 0
}
 posted on 2010-08-18 15:24  MiYu  阅读(194)  评论(0编辑  收藏  举报