C 无提示搜索号码

C 无提示搜索号码,c,C,我的算法的主要问题是什么,我需要找到最小的正数,它从1除以20,没有除法器 #include <stdio.h> #include <stdbool.h> int main(int argc,char* argv[]) { int num,j=2; int saveNum=20; bool flag = false; while(!flag) { num = saveNum; while(num%j==0 && j<=20)

我的算法的主要问题是什么,我需要找到最小的正数,它从1除以20,没有除法器

#include <stdio.h>
#include <stdbool.h>

int main(int argc,char* argv[])
{
int num,j=2;
int saveNum=20;
bool flag = false;
while(!flag)
{
    num = saveNum;
    while(num%j==0 && j<=20)
    {
        num /= j;
        j++;
    }
    if(j>20)
        flag = true;
    else
    {
     saveNum++;
     j=1;
    }
}
printf("Done");
printf("%d",saveNum);
}
#包括
#包括
int main(int argc,char*argv[])
{
int num,j=2;
int saveNum=20;
布尔标志=假;
while(!flag)
{
num=saveNum;
while(num%j==0&&j20)
flag=true;
其他的
{
saveNum++;
j=1;
}
}
printf(“完成”);
printf(“%d”,saveNum);
}

是否缺少查看中间结果的
printf
?这可能会帮助你了解内部的情况

但我真的不明白你想解决什么。是否希望结果:
2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20

因为我认为这就是你目前正在计算的。然而,在到达之前您将溢出,迭代到该点将花费您一段时间


相反,如果您试图找到可被小于或等于20的每个数字整除的最小数字,那么您可能需要重新查看更新的
num/=j

您的算法没有任何意义。试试看,我不知道你想解决什么问题。您是否正在尝试获得
2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20的解决方案?在到达之前,您将溢出32位。@Cracknuts因为有一个溢出,您将有更大的机会获得有意义的结果。