Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Visual Studio中查找质数的for循环中的问题_C_Visual Studio_For Loop_Primes - Fatal编程技术网

C Visual Studio中查找质数的for循环中的问题

C Visual Studio中查找质数的for循环中的问题,c,visual-studio,for-loop,primes,C,Visual Studio,For Loop,Primes,我在C中编写了一个简单的for循环,以查找输入的数字是否是素数。运行时,即使输入简单的值,如7、13等,程序也只是坐在上面,似乎在处理一些巨大的数据。我有一个i53340M,所以处理能力真的不是问题。所有内核的CPU使用率都高达25%,即使等待几分钟,我也看不到任何结果。当然,现代处理器并不慢,C非常快,比Python快得多,Python本身可以非常快速地检查素数 在我看来,我做了一些愚蠢的事情,代码没有得到优化或膨胀。请看一看,告诉我哪里出了问题: int num,i,chk = 0

我在C中编写了一个简单的for循环,以查找输入的数字是否是素数。运行时,即使输入简单的值,如7、13等,程序也只是坐在上面,似乎在处理一些巨大的数据。我有一个i53340M,所以处理能力真的不是问题。所有内核的CPU使用率都高达25%,即使等待几分钟,我也看不到任何结果。当然,现代处理器并不慢,C非常快,比Python快得多,Python本身可以非常快速地检查素数

在我看来,我做了一些愚蠢的事情,代码没有得到优化或膨胀。请看一看,告诉我哪里出了问题:

    int num,i,chk = 0 ;
    printf("\nEnter positive integer to check : ");
    scanf("%d", &num);
    for (i = 2; i = num / 2; i++)
    {
        if (num%i == 0)
        {
            break;
            chk = 1;
        }
    }
    if(num == 1)
        printf("\n\n1 is neither prime not composite.\n");
    else if(chk == 1)
        printf("\n\nThe number %d is indeed prime.\n", num);
    else
        ("\n\nThe number %d is not actually prime.\n", num);

i=num/2将num/2分配给i,并计算为“true”以继续for循环。当n大于1时。你可能想知道我有没有考虑过在调试器中跟踪以查看发生了什么?num永远不会改变,所以如果中断从未命中,请考虑循环的工作方式。也许你是想用@RetiredInja抱歉,我不太明白你的意思。。。为什么变化很重要。。。我应该改为测试num%i,对吗?i=num/2,因为循环条件对您来说合适吗?将来,当询问不起作用的代码时,请始终提供一个。不要只提供代码片段。中断后的语句不会被执行。我现在有一个新问题,无论数字是否为素数,程序实际上都不会打印。它检查号码,然后继续终止。为什么它不打印适当的结果?我的if语句有什么问题吗?当我输入1时,它打印的1既不是素数也不是复合数…这段代码呢:if num%I==0{break;chk=1;}?@Lucas怎么办?if块中的语句顺序应该不是{chk=1;break;}?