C 如何使用while循环输出可能的最小除数?

C 如何使用while循环输出可能的最小除数?,c,C,这个赋值要求我使用while循环输出尽可能低的除数。我想我已经记下了大部分,但是我无法得到我想要的正确输出。我一直得到0作为输出,我知道它是mod的余数,但我不知道如何输出除0以外的其他内容 #include <stdio.h> int main(void) { int divisor; int dividend; int lpd; int remainder; divisor=2; printf("Enter a number

这个赋值要求我使用while循环输出尽可能低的除数。我想我已经记下了大部分,但是我无法得到我想要的正确输出。我一直得到0作为输出,我知道它是mod的余数,但我不知道如何输出除0以外的其他内容

#include <stdio.h>

int main(void)
{
    int divisor;
    int dividend;
    int lpd;
    int remainder;

    divisor=2;

    printf("Enter a number to divide: ");
    scanf("%d", &dividend);

    while(remainder!=0)
    {
        lpd=dividend%divisor;
        divisor++;
    }

    printf("%s %d","The lowest positive divisor is: ",lpd);
}
#包括
内部主(空)
{
整数除数;
国际股息;
int-lpd;
整数余数;
除数=2;
printf(“输入要除的数字:”);
scanf(“%d”和红利);
while(余数!=0)
{
lpd=股息%除数;
除数++;
}
printf(“%s%d”,“最小正除数为:”,lpd);
}

我想你想要这个

int main(void)
{
    int divisor;
    int dividend;
    int lpd;
    int remainder;

    divisor=2;

    printf("Enter a number to divide: ");
    scanf("%d", &dividend);

    while(dividend%divisor!=0)
    {
        divisor++;
    }

    printf("%s %d","The lowest positive divisor is: ",divisor);
}
#包括
int main(){
整数除数=2;
国际股息;
int rements=1;//给它一个非零值
printf(“输入要除的数字:”);
scanf(“%d”和红利);
while(余数!=0){
余数=被除数%除数;//更新余数
除数++;
}
//由于循环的构造方式,除数为1
//要么减去一,要么以不同的方式重写循环
除数--;
printf(“最小正除数为:%d\n”,除数);
返回0;
}

Nothing更新
余数
并且它没有值,这是未定义的行为。可能在大多数情况下,它的值都是
0
,因此while循环不会run@asimes你能给我一个关于如何改变我的代码的例子吗?我对C还是新手,不知道下一步该做什么。康纳·米勒“一点也不知道”-->你当然知道。不要轻易放弃。尝试使用a。正整数n的最小除数为1。您的意思是希望程序打印最小素数因子吗?希望用户不要输入
1
#include <stdio.h>

int main() {
    int divisor = 2;
    int dividend;
    int remainder = 1; // Give this a non-zero value

    printf("Enter a number to divide: ");
    scanf("%d", &dividend);

    while (remainder != 0) {
        remainder = dividend % divisor; // Update remainder
        divisor++;
    }
    // Due to the way the loop is structured, divisor is off by one
    // Either subtract one or rewrite the loop a different way
    divisor--;

    printf("The lowest positive divisor is: %d\n", divisor);
    return 0;
}