1210: 인자 분해 시간 제한: 1000ms 메모리 제한: 65536KB [제목 설명] 하나의 수를 입력하여 그 소인자 분해 표현식을 출력합니다.[입력] 정수 n(2≤n<100)을 입력합니다.[출력] 이 정수의 인자 분해 표현식을 출력합니다.표현식에서 각 소수는 작은 것에서 큰 것으로 배열된다.만약 이 정수가 인자 a의 b차방을 분해할 수 있다면 b가 1보다 크면 a^b로 쓴다.b가 1이면 바로 a로 쓴다.[샘플 입력] 60 [출력 샘플] 2^2*3*5 [출처] No
//
#include
#include
#include
#include
using namespace std;
int main()
{
int a,b=0,n,i;
scanf("%d",&a);
n=a;
for(i=2;i<=a;i++){
int m=0;
if(n%i==0){
if(b==0) b=1;
else printf("*");
printf("%d",i);
while(n%i==0){n/=i;m++;}
if(m>1) printf("^%d",m);
}
if(i>=n||n==1) break;
}
return 0;
}
//
#include
#include
#include
#include
using namespace std;
int s[101];
void f(int x,int y)
{
if(x==0||y>x) return;
else{
while(x%y==0){
x/=y;
s[y]++;
}
f(x,y+1);
}
}
int main()
{
int n;
scanf("%d",&n);
f(n,2);
int bl=0;
for(int i=2;i<=100;i++){
if(bl==1&&s[i]!=0) printf("*");
if(s[i]!=0) bl=1;
if(s[i]==1) printf("%d",i);
else if (s[i]>1) printf("%d^%d",i,s[i]);
}
return 0;
}