#include <stdio.h>
#include <math.h>
int prime_number(int n) {
//判断整数 n 是否为素数
int i,m,t,s=1; //s 是一个标志,s=1 表示是素数,s=0 表示不是素数
m=sqrt(n);
for(i=2; i<=m; i++) {
t=n%i;
if(t==0)
s=0;
}
return s;
}
int main() {
int i,count=0,n,primes[1000],a[1000];
int s,j=0,k=0;
printf("请输入一个数据 n(n>=1):");
scanf("%d",&n);
while(n<=1) {
printf("数据不合法,请重新输入数据:");
scanf("%d",&n);
}
for(i=2; i<=n; i++) {
s=prime_number(i);
if(s==1)
primes[++j]=i;
}
count=j;
printf("%d=",n);
for(i=1; i<=count && n>=primes[i]; i++) {
while(n%primes[i]==0) {
a[k]=primes[i];
k++;
n/=primes[i];
}
}
for(i=0; i<k-1; i++)
printf("%d*",a[i]);
printf("%d\n",a[k-1]);
}
输入自然数 n,将 n 分解为质因子连乘的形式输出。
猜你喜欢
转载自blog.csdn.net/weixin_51626694/article/details/115736638
今日推荐
周排行