在没有提醒的情况下搜索号码

时间:2013-10-06 21:02:27

标签: 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)
    {
        num /= j;
        j++;
    }
    if(j>20)
        flag = true;
    else
    {
     saveNum++;
     j=1;
    }
}
printf("Done");
printf("%d",saveNum);
}

1 个答案:

答案 0 :(得分:0)

您是否遗漏了printf以查看您的中间结果是什么?这可能有助于您了解内部发生的事情。

但我真的不明白你要解决的问题。您想要结果:2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20

因为我认为这就是你目前正在计算的东西。但是,在你到达那里之前你会溢出并且迭代到那一点会花费你一段时间。

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