Ich versuche, die folgende Serie 4 6 12 18 30 42 60 72 .... bis n in C-Sprache zu drucken. Seine Logik ist einfach; wir müssen die Zahl so drucken, dass die vorhergehende und die folgende Zahl prim sein sollte! Aber der folgende Code ist keine Schleife nach dem Drucken der 4. Was ist falsch im folgenden Code?Twin Primzahlen C Code
#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);
}
}
}
Alle Primzahlpaare nach 3 und 5 (beginnend mit 5 und 7) haben die Form 6x ± 1 für eine ganze Zahl x. Wie wirst du die Primalität bestimmen - solltest du eine Funktion haben, das zu tun? Sie könnten dann ein Vielfaches von 6 durchlaufen und die Primzahl der ± 1 Werte überprüfen, wenn beide Primzahlen sind. Da die Werte 6x ± 1 immer ungerade sind, müssen Sie die Teilbarkeit nicht durch 2 überprüfen. und (durch Konstruktion) sind sie auch nicht durch 3 teilbar. Das kann die Überprüfung der Primzahl beschleunigen. In der ersten inneren Schleife können Sie auch 'j * j