1059 Prime Factors (25分)本人暴力代码
这题没啥好说的,暴力,唯一的坑点就是输入样例是1需要特判!附赠本人暴力代码
#include <iostream>
#include <cstdio>
#include <map>
#include <vector>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long LL;
int isPrime(LL n)
{
if(n<=1) return -1;
LL sqr=(int)sqrt(1.0*n);
for(int i=2;i<=sqr;i++)
{
if(n%i==0) return -1;
}
return 1;
}
LL tag[100000]={0};
int main()
{
LL num,num1,temp=2;
scanf("%lld",&num);
num1=num;
while(num>0&&temp<=num)
{
while(isPrime(temp))
{
while(num%temp==0)
{tag[temp]++;num=num/temp;}
if(num%temp!=0)
{break;}
}
temp++;
}
if(num1==1)
printf("%lld=1",num1);
else{
printf("%lld=",num1);
for(int i=0;i<=temp;i++)
{
if(tag[i]!=0)
{
if(i==temp-1)
{
if(tag[i]>1)
printf("%lld^%lld",i,tag[i]);
else {printf("%lld",i);}
}
else
{
if(tag[i]>1)
{printf("%lld^%lld*",i,tag[i]);}
else {printf("%lld*",i);}
}
}
}}
}