孪生素数C代码

时间:2017-07-16 06:54:43

标签: c loops for-loop primes

我正在尝试使用C语言打印以下系列4 6 12 18 30 42 60 72 ....它的逻辑很简单;我们必须打印这个数字,以便前面和后面的数字应该是素数!但是下面的代码在打印4后没有循环。下面的代码有什么问题?

#include <stdio.h>

int main(){
    int n, i, j, p2, k;
    int count1=0, count2=0;
    printf("enter the number:\n");
    scanf("%d",&n);
    for(i=3;i<n;i++){
        for(j=2;j<i;j++){
            if(i%j==0){
                count1++;
                break;
            }
        }
        p2=i+2;
        for(k=2;k<i;k++){
            if(p2%k==0){
                count2++;
                break;
            }
        }
        if(count1==0 && count2==0){
            printf("%d",i+1);
        }

    }
}

2 个答案:

答案 0 :(得分:1)

你只需要在循环结束时将计数器设置为0

#include<stdio.h>
int main(){
int n, i, j, p2, k;
int count1=0, count2=0;
printf("enter the number:\n");
scanf("%d",&n);
for(i=3;i<n;i++){
    for(j=2;j<i;j++){
        if(i%j==0){
            count1++;
            break;
        }
    }
    p2=i+2;
    for(k=2;k<i;k++){
        if(p2%k==0){
            count2++;
            break;
        }
    }
    if(count1==0 && count2==0){
         printf("%d ",i+1);
    }
    count1=0; count2=0;
}
}

答案 1 :(得分:0)

您的代码是正确的,只需将 count1 count2 设置为外部for循环 0 >

你也可以这样试试。  这段代码是用Java编写的。你可以将它转换为C.逻辑保持不变。 对于<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="image-store"> <img width="50" src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"> <img src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"> <img width="50" src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"> </div> <div class="image-disp"> <img width="200" src=""> </div>,取固定长度等于Arraylist的数组。

n