运行时输入n,输出n的所有质数因子

输入13860输出2 2 3 3 5 7 11题目没有错
2024-11-22 00:21:19
推荐回答(2个)
回答1:

你输入的n,就是我程序中要求输入的digit
程序如下,使用c++编写的
#include
using namespace std;

const int MAX=10000;

int absorb(int digit);

int main()
{

int digit;

cout< <<"input the digit:";
cin>>digit;

cout< <<"=";

while(digit!=1)
{
int a=absorb(digit);
cout< <<"×";
digit=digit/a;

}
cout<
}

int absorb(int digit)
{

int array[MAX];

for(int i=1;i<=MAX;i++)
{

array[i-1]=i+1;

if((digit%array[i-1]==0)&&(digit/array[i-1]!=1))
{
return array[i-1];
break;
}

else if ((digit%array[i-1]==0)&&(digit/array[i-1]==1))
return array[i-1];

}

}

回答2:

#include
#include

int main(){
int a,b,c,d;
scanf("%d",&a);
d=a;
for(b=2;b if (a%b==0)
{
printf("%d\n",b);
a/=b;
continue;
}
b++;
}
}
用了一点代数知识,应该能看懂吧。