English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo esempio, imparerai come stampare tutti i numeri primi tra due numeri (inseriti dall'utente).
Per comprendere questo esempio, dovresti conoscere i seguentiprogrammazione in CArgomento:
Per trovare tutti i numeri primi tra questi due numeri, è stato creato checkPrimeNumber(). Questa funzionecontrollare se un numero è primo.
#include <stdio.h> int checkPrimeNumber(int n); int main() { int n1, n2, i, flag; printf("Inserisci due numeri interi positivi: "); scanf("%d %d", &n1, &n2); printf("%d e %d tra i numeri primi: ", n1, n2); per (i = n1 + 1; i < n2; ++i) { // se i è un numero primo, flag è uguale a 1 flag = checkPrimeNumber(i); se (flag == 1) printf("%d ", i); } return 0; } //函数由用户定义来检查质数 int checkPrimeNumber(int n) { int j, flag = 1; per (j = 2; j <= n / 2; ++j) { se (n % j == 0) { flag = 0; break; } } return flag; }
输出结果
输入两个正整数: 12 30 13和30之间的质数为: 13 17 19 23 29
如果用户首先输入较大的数字,则该程序将无法正常工作。要解决这个问题,您需要先交换数字。