c - C语言中获取2到100之间的所有素数

标签 c loops primes

这是我的代码,应该只输出素数。

#include <stdio.h>
int prime(int n){
    int j;
    for (j=2;j<=n/2;j++){
        if((n%j)==0){
            return 0;
        }
        else{
            return 1;
        }
    }
}
void main(){
    int i,p;
    for (i=2;i<=100;i++){
        p=prime(i);
        if(p==1){
            printf("%d \n",i);
        }
    }
}

结果是 2,3,7,9,11,13,15....

不是 2,3,5,7,11,13....

我做错了什么?

最佳答案

您可能想要:

int prime(int n){
    int j;
    for (j=2;j<=n/2;j++)
        if((n%j)==0)
            return 0;
   return 1;
}

关于c - C语言中获取2到100之间的所有素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892360/

相关文章:

bash - 如何使这个 bash 素数生成器更快 [SPOJ]

c - 分配给 double 据类型的位数

python - 矩阵操作 - 为什么正常循环会产生不同的结果?

c - C中使用数组的for循环

java - 并发修改异常不一致

python - 检查 python 中(某种)大数字的可分性

C程序打印奇怪的字符

c - 将多个值分配给单个变量(不是数组)的行为是什么?

c - C 语言 Trie 实现中的段错误

algorithm - Eratosthenes筛的引用实现