嘘嘘出差 2020-12-16 17:26 采纳率: 100%
浏览 26
已采纳

求大神让它不要运行超时

#include <stdio.h>
#include <math.h>
int main() {
	int num;
	scanf("%d", &num);
    printf("%d=",num);
	//为了使结果显示为90=2*3*3*5形式
	int i;
	for (i = 2; i <= num; i++) 
        if (num % i == 0){
		if(num!=i) printf("%d*", i);
        else printf("%d",i);
		num = num / i;
		i = 1;
	}
	return 0;
}
  • 写回答

9条回答 默认 最新

  • qq_25376897 2020-12-16 17:45
    关注
    #include <stdio.h>
    #include <math.h>
    
    int main() {
    	int num;
    	scanf("%d", &num);
        printf("%d=",num);
    	//为了使结果显示为90=2*3*3*5形式
    	if(num<=1){//小于2的直接输出
    	    printf("%d",num);
    	    return 0;
    	}
    	int i;
    	for (i = 2; i <= num; i++){
    	    while(num%i==0){//要把同一个i都模运算完才能进入下一次for循环,因为可能会有多个一样的因子,比如90中有2个3
    	        printf("%d",i);
    	        num/=i;
    	        if(num>1){
    	          printf("*");  
    	        }
    	    }
    	}
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?