质数分解
比如 6 = 2 * 3;
4 = 2 * 2;
代码:
#include <iostream>
#include <algorithm>
using namespace std;
int iszhishu(int x);
int main()
{
int x;
cin>>x;
int num = x;
int a[100];
int flag = 0;
for(int i = 2; i < x; i++)
{
if( (num % i == 0) && (iszhishu(i) == 1) )
{
a[flag] = i;
flag++;
num = num / i;
while(num % i == 0)
{
a[flag] = i;
flag++;
num = num / i;
}
}
}
cout<<"[";
for(int i = 0; i < flag ; i++)
{
if( i <= flag - 2)
{
cout<<a[i]<<",";
}
else
{
cout<<a[i];
}
}
cout<<"]";
return 0;
}
int iszhishu(int x)
{
/*for(int i = 0; i < x; i++)
{*/
if(x== 1 || x == 2)
return 1;
for(int j = 2; j * j <= x + 1; j++)
{
if(x % j == 0)
return 0;
}
return 1;
}
测试用例:100