【C语言】输出一个整数的素数因子

思路:外层是一个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版权协议,转载请附上原文出处链接和本声明。