茜瑜


私信TA

用户名:uq_22682492264

访问量:309

签 名:

等  级
排  名 16701
经  验 797
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 江苏第二师范学院
专  业 物联网工程

  自我简介:

解题思路:判断质数大家都很熟悉啦,判断质因数也是不难的哦,千万别把代码思路想象的很复杂,人人都可以学会的!

注意事项:我觉得难点在于插入*和\n,大家看看代码代入一下数字很简单就能理解,有问题欢迎留言讨论,别忘了点个赞喔

参考代码:

#include <stdio.h>
void fenjie(int num){//分解质因数
  if(num!=1){        //停止递归的条件num=1
    for(int i=2;i<=num;i++){
      if(num%i==0){  //找出一个因数
        printf("%d",i);
        if(i!=num) printf("*");//i=num说明是最后一个因数,不加分号
        fenjie(num/i);//递归
        break;//找出一个因数循环就要赶紧停止,防止找出4,6这种非质数
      }
    }
  }   
  else printf("\n");
}

int zhi(int num){//判断质数
   for(int j=2;j<num;j++){
      if(num%j==0) return 0;//不是质数
      if(j==num-1) return 1;//是质数
      }
}

int main()
{
  int a,b;
  scanf("%d %d",&a,&b);
  for(int i=a;i<=b;i++){
    if(i==1) printf("1=1\n");//1和2在判断质数函数中不好操作,单独列出来
    else if(i==2) printf("2=2\n");
    else{
      if(zhi(i)) printf("%d=%d\n",i,i);//是质数直接列出来
      else{                         //不是质数就分解
        printf("%d=",i);
        fenjie(i);
      }
    }
  }
  return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »