私信TA

用户名:2950870451

访问量:25677

签 名:

等  级
排  名 197
经  验 6587
参赛次数 0
文章发表 77
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路: 短除法

参考代码:

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

int main(){
 int factor[4];
 int i = 2,j,k = 0,n;
 
 scanf("%d", &n);
 printf("%d=", n);
 while(n != 1){
  if(n%i == 0){ //n被i整除则i是n的因子
   for(j = 2; j <= sqrt(i); j++){ //判断因子i是不是质因子
    if(i%j == 0){
     break;
    }
   }
   if(j > sqrt(i)){ //j大于sqrt(i)则因子i是质因子
    factor[k] = i;
    k++;
   }
   n /= i; //改变n值
   i = 1; //回溯
  }
  i++;
 }
 printf("%d", factor[0]); //因为输出格式的问题,所以先输出factor[0]保证末尾没有多余的空格
 for(i = 1; i < k; i++){
  printf("*%d", factor[i]);
 }
 
 return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »