Си: вывод простых чисел от 1 до N

Си: вывод простых чисел от 1 до N

/stackoverflow

В первой строке содержится целое число 𝑁. Нужно вывести все простые числа в диапазоне от 1 до 𝑁 включительно, по одному числу в строке.

Вот мой код, прога ничего не выводит и зависла по времени.

Посоветуйте, что сделать/исправить, пожалуйста.

P.S. Только начинаю изучать Си, поэтому простите мою тупость :)

#include<stdio.h>
int main(){
    int i, N, t, k;
    t=0;
    i=2;
    scanf("%d", &N);
    for (k=2; k<=N; k++){
        while(i<N){
            if (k%i==0){
                t++;
                i++;
            }
        if(t==0){
            printf("%d", k);
        }
        }
    }
}


#include<stdio.h>
int main(){
    int i, N, t, k;
   
    scanf("%d", &N);
    for (k=2; k<=N; k++){
        i = 2;
        t = 0;
        while(i < k){
            if (k%i==0){
                t++;
            }
            i++;
        }
        if(t==0){
            printf("%d\n", k);
        }
    }
}




Report Page