题解 | #质数因子#

质数因子

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

#include <math.h>
#include <stdio.h>

int main() {
    int num;
    scanf("%d",&num);
    int i =2; 
        while(i<=(int)sqrt(num)){//因子不大于除数平方根 防止超时
            if(num % i==0){ //是因子判断因子是否素数 
                int j;
                for(j =2;j<=(int)sqrt(i);j++){
                    if (i % j==0) {
                        break;
                    }
                }
                if(j>(int)sqrt(i)){ //是素数
                    num = num / i;
                    printf("%d ",i);
                    continue;
                }              
            }
            i++; //不是因子
       } 
       if(num !=1){
        printf("%d ",num);
       }

    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务