Silver Vortex 2022-10-23 13:53 采纳率: 0%
浏览 20

质因数分解的一点点疑惑

下面的代码来自之前的一个人写的博客,对于是否输出*用n/j>2来判断,我改成n>j,试了许多数也对,希望有人能给我举出反例或者告诉我n>j是否可行


#include<stdio.h>
#include<math.h>
int Isprime(int n)     //函数功能--判断是否为素数
{
    for (int i = 2; i<sqrt(n); i++)
        if (n % i == 0) return 1;
    return 0;
}
void fun(int n)         //函数功能--质因数分解
{
    int i = 0, j;
    int m = n;
    for (j = 2;j < m/2; j++)     //从小到大寻找n的因数
            while(n % j == 0)   //当n%j(因数)== 0时,继续分解
            {
                printf("%d",j);
                if(n/j>2)    //n>j我试了好多感觉也对 
                printf("*");
                n /= j;
            }
}
int main()
{
    int n;
    int c;
    scanf("%d", &n);      //输入要分解的数
    c = Isprime(n);       //判断是否为素数
    if (c)  fun(n);        //如果不是素数则进行分解
    else printf("it is a prime\n");   //如果是素数则不用分解
}
//输入90,输出2*3*3*5
  • 写回答

2条回答 默认 最新

  • Minsecrus_dreamers 2022-11-05 08:18
    关注

    我一般先n/=j
    然后再判断if(n>1)printf('*')

    评论

报告相同问题?

问题事件

  • 创建了问题 10月23日

悬赏问题

  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。