第一行包含一个整数𝑁。您需要打印从 1 到 𝑁 范围内的所有素数,每行一个数字。
这是我的代码,程序不显示任何内容并及时挂起。
请告知该怎么做/修复。
PS我刚刚开始学习C,所以请原谅我的愚蠢:)
#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);
}
}
}
}
灵魂根本无法承受达尼兹这样的低效率。
总的来说,这个问题在 RuSO 上已经被吸了很多次了,没有找到答案简直是一种耻辱。
只是为了好玩 - 对于 N = 100000,我的代码在我的机器上以 33 毫秒的顺序运行,Danis 的代码运行相同的 N - 17 秒。