C Program til visning af primtal mellem to intervaller

I dette eksempel lærer du at udskrive alle primtal mellem to tal indtastet af brugeren.

For at forstå dette eksempel skal du have kendskab til følgende C-programmeringsemner:

  • C hvis… ellers Erklæring
  • C for Loop
  • C bryde og fortsætte

Vis primtal mellem to intervaller

 #include int main() ( int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; ) return 0; )

Produktion

 Indtast to tal (intervaller): 20 50 Primtal mellem 20 og 50 er: 23 29 31 37 41 43 47 

I dette program whilegentages sløjfen ( high-low-1) gange.

I hver iteration kontrolleres, om der lower et primtal eller ej, og værdien af lowøges med 1indtil lower lig med high.

Besøg denne side for at lære mere om, hvordan du kontrollerer, om et tal er prime eller ej.

Hvis brugeren først indtaster det større nummer, fungerer ovenstående program ikke som beregnet. Du kan løse dette problem ved at bytte numrene.

Vis primtal, når der indtastes større nummer først

 #include int main() ( int low, high, i, flag, temp; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low> high) ( temp = low; low = high; high = temp; ) printf("Prime numbers between %d and %d are: ", low, high); while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); ++low; ) return 0; )

Besøg denne side for at lære, hvordan du kan vise alle primtal mellem de to intervaller ved at oprette en brugerdefineret funktion

Interessante artikler...