题意:
给一个数N,求出N的所有质因数.
思路:
N从2开始除,除得尽就是质因数,除的时候注意每次除完要取商,然后用商去除下一个数.但是可以除同一个数,直到这个数除不尽.
还有质因数是同个数有多个,就需要输出有多少个,一个就输出1,看案例就知道.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int arry[65536];
int k;
int main()
{
int n,Case=0,loge=0;
while(~scanf("%d",&n))
{
if(n<=0)
break;
if(loge)
cout<<endl;
loge++;
memset(arry,0,sizeof(arry));
int m=n;
for(int i=2;i<35536;i++)
{
if(m%i==0)
{
m/=i;
arry[i]++;
i--;
}
}
printf("Case %d.\n",++Case);
for(int i=2;i<65536;i++)
if(arry[i])
printf("%d %d ",i,arry[i]);
cout<<endl;
}
return 0;
}