一、思路
测试点3 答案错误:1为例外,没有素数为1的因数,输出“1=1”;
二、代码
#include <cstdio>
bool isprime(int x)
{
for( int i = 2; i * i <= x; ++i )
if( x % i == 0 )
return false;
return true;
}
int main()
{
int N;
scanf("%d", &N);
printf("%d=", N);
if( N == 1 )
printf("1");
for( int i = 2, e, cnt = 0; i <= N; ++i )
{
if( isprime(i) && N % i == 0 )
{
for( e = 0; N % i == 0; N /= i, ++e );
printf("%s%d", cnt++ ? "*":"", i);
if( e > 1 )
printf("^%d", e);
}
}
}