#include <iostream>
#include <math.h>
using namespace std;
int main()
{
cout<<"適用於"<<sizeof(unsigned long int)*8<<"位"<<'\n';
cout<<"請輸入壹個4以上,2^"<<sizeof(unsigned long int)*8<<"以下的整數,"<<'\n'<<"本程序將它因數分解"<<'\n';
unsigned long int i=2,k=0,r;
cin>>r;
if(r<4||r>4294967295)
{
cout<<"出錯";
}
else
{
for(int i=2;i<=sqrt((double)r);i++) //其實不需要循環到r,只要循環到根號r就可以了。
{
if((r%i)==0&&1!=r)
{
cout<<i<<'\n';
r=r/i;
i--;
k++;
}
}
if(0==k)
{
cout<<r<<" 為質數";
}
else
{
cout<<r;
}
}
return 0;
}