C
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int isprime(int n);
int main() {
int n;
while (scanf("%d", &n) != EOF)
{
printf("%d=", n);
for (int i = 2; i < n + 1;)
{
if (n != 1 && n % i == 0 && isprime(i))
{
printf("%d", i);
n = n / i;
if (n != 1) printf("*");
}
else
{
i++;
}
}
printf("\n");
}
return 0;
}
int isprime(int n)
{
if (n == 2) return 1;
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
python版
![在这里插入图片描述]()
def isprime(n):
if n==1 or n==0:
return False
for i in range(2,n):
if n%i==0:
return False
return n
def decompose():
n=(int)(input("input a positive integer:"))
list_factor=[]
list_power=[]
list=[list_factor,list_power]
""" python3:the dict is ordered! """
""" use the index variable to guide the power update operation """
j=-1
i=2
while n>1:
if n%i==0:
if isprime(i):
""" iterate n: """
n=n//i
""" update the prime factor and its correspondent power """
if(i not in list_factor):
list_factor.append(i)
list_power.append(1)
j+=1
else:
list_power[j]+=1
else:
i+=1
else:
i+=1
return list
print(decompose())