用C语言打印素数

用C语言打印素数,c,for-loop,numbers,cs50,C,For Loop,Numbers,Cs50,我试图打印出素数,直到从用户那里获得的某个值。如果我只收到一个1的答案,我想我的for循环有问题吗 #include <stdio.h> #include <cs50.h> int main (void) { printf("Length: "); int length = GetInt(); bool notPrime = false; for (int i = 1; i < length; i++) {

我试图打印出素数,直到从用户那里获得的某个值。如果我只收到一个1的答案,我想我的for循环有问题吗

#include <stdio.h>
#include <cs50.h>

int main (void)
{
    printf("Length: ");
    int length = GetInt();

    bool notPrime = false;

    for (int i = 1; i < length; i++)
    {
        for (int k = 1; k <= i/2; k++)
        {
            if (i % k == 0)
            {
                notPrime = true;
                break;
            }
            else
            { 
                notPrime = false;
            }   
        }
        if (notPrime == false)
        {
            printf("%d ", i);
        }
    }
    printf("\n");
}
#包括
#包括
内部主(空)
{
printf(“长度:”);
int length=GetInt();
bool-notPrime=false;
for(int i=1;i
for (int k = 1; k <= i/2; k++) 
for(k=2; k<=sqrt(i); k++) 

您可能需要检查特殊情况,您可以从3开始。 此外,还可以增加2(不包括对号):

for(int i = 1; i < length; i++){

    if(number < 2) prime = true; 
    if(number == 2) prime = false;
    if(number % 2 == 0) prime = false; 
    for (int k = 3; k <= i/2; k++){
        if(number % i == 0 ){ 
            prime = false;
            break;
        }
    }
    if (prime){
        printf("%d ", i);
    }
}
for(int i=1;i
for (int k = 1; k <= i/2; k++) 
for(k=2; k<=sqrt(i); k++) 

for(k=2;k)对于至少前两个值,这应该不会太难进行笔和纸调试。您尝试过了吗?这告诉了您什么?请您澄清您的问题是什么?