//此题强调如果没有满足条件的数,要输出-1.
//不满足条件的数既不能完全被<10的数分解的数,包括素数,也包括素数的倍数
#include <iostream>
#include <stack>
using namespace std;
unsigned long int n;
int main()
{
stack<int> mystack;
scanf("%ld",&n);
if (n==0)
{
printf("10/n");
return 0;
}
if(n==1)
{
printf("1/n");
return 0;
}
for (int i=9;i>1&&n>1;i--)
{
while (n>1 && n%i==0)
{
n/=i;
mystack.push(i);
}
}
if (n!=1)
{
while (!mystack.empty())
{
mystack.pop();
}
}
if(mystack.empty())
{
printf("-1/n");
return 0;
}
while(!mystack.empty())
{
printf("%d",mystack.top());
mystack.pop();
}
cout<<endl;
return 0;
}
本文介绍了一个简单的算法,用于判断一个数是否能完全被小于10的数分解,并输出所有分解因子。若输入数为素数或无法完全分解,则输出-1。
1615

被折叠的 条评论
为什么被折叠?



