运行时输入n,输出n的所有质数因子
发布网友
发布时间:2022-05-14 07:04
我来回答
共2个回答
热心网友
时间:2023-10-09 10:49
你输入的n,就是我程序中要求输入的digit
程序如下,使用c++编写的
#include<iostream>
using namespace std;
const int MAX=10000;
int absorb(int digit);
int main()
{
int digit;
cout<<endl
<<"input the digit:";
cin>>digit;
cout<<digit
<<"=";
while(digit!=1)
{
int a=absorb(digit);
cout<<a
<<"×";
digit=digit/a;
}
cout<<digit;
}
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];
}
}
热心网友
时间:2023-10-09 10:49
#include <stdio.h>
#include <math.h>
int main(){
int a,b,c,d;
scanf("%d",&a);
d=a;
for(b=2;b<sqrt((float)d);){
if (a%b==0)
{
printf("%d\n",b);
a/=b;
continue;
}
b++;
}
}
用了一点代数知识,应该能看懂吧。