c - 程序在 15 秒后进入无限循环

标签 c loops

我正在编写一个程序来查找给定数字的素阶乘。
虽然程序运行良好,但我有两个问题。
1. 当我输入一个奇数时,它会在结果中打印 2,尽管 2 不应该在其中。
2. 15秒后变成死循环,真是毛骨悚然。

#include<stdio.h>
#include<conio.h>
int num(int); // Making a function for finding prime factors
int main()
{
    int i,j;
    printf("Enter any number");
    scanf("%d",&i);
    num(i);

    getch();

    }

int num(int i)
{

    int a=2;
    while(a<=i)
    {

        if(i%a==0) //if the number is divisible then divide it
            i=i/a;

        printf(" %d",a);

        if(i%a!=0) 
       {
            i%a;
            while(i%a!=0)// If it is not divisible by 2 then increment it until it is
                 a++;
       }

    }

}

最佳答案

它总是打印 2,因为 print 语句不是测试 mod 0 的 if 的一部分。它进入无限循环,因为一旦 a 通过 i,第二个 while 循环将永远不会退出。

关于c - 程序在 15 秒后进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023822/

相关文章:

C编程错误: expected '{' before string constant

C:在 O(1) 中将整数的第 i 位设置为 1

c - c语言双向链表使用二级指针有什么好处?

c - 数据结构 "stack"执行期间 do-while 循环中的逻辑错误

java - 如何通过单击 android 中的按钮完成一个循环后继续 R.raw.audio 声音

python - 获取两个整数列表并创建类型列表对的更快方法

python - 错误陷阱与计数器结合使用不起作用

python - 如何从循环的每个实例收集信息?

c - #define REG(x) (*((volatile unsigned int *)(x)))

c# - 在 c# 和 c 函数之间传递值和指针