题解 | #质数因子#
质数因子
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; }