思路:外层是一个for循环,循环除数,里层是while循环来筛选除得尽的数,除不尽的话不进入while循环,在for上自增,直到加到除得尽的数为止,才进入while循环,进入while循环还得判断该数是否是素数因子,如果是素数因子就输出,然后再赋予y新的值,注意此时还得走while循环,用同一个素数因子,除完为止,到最后除不尽了再跳出while,转到for循环(此时for循环中的y为新的值)改变除数再进入while循环,再用新的除数除完,以此内推...
代码:
#include<stdio.h>
int main(){
int prime(int);//函数声明
int x;
printf("请输入一个整数:");
scanf("%d",&x);
for(int i=2;i<=x;i++){
while((x%i)==0){//首先判断是否为因子
if(prime(i)){//再判断因子是否为素数
printf("%d ",i);
}
x=x/i;
}
}
return 0;
}
//判断素数
int prime(int n){
int j;
int f=1;
for(j=2;j<n;j++){
if(n%j==0){
f=0;
break;
}
}
return f;
}
版权声明:本文为SAITWATERLaKE原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。