本文共 856 字,大约阅读时间需要 2 分钟。
编写一个高效判断素数的函数,并利用该函数打印n与m之间(包含n和m)的所有素数。
多组测试数据,每组输入两个整数n和m,其中1 < n ≤ m ≤ 1000。
在一行输出n和m之间(包含n和m)所有的素数,中间用空格隔开,最后一个数后面没有空格。
2 14
2 3 5 7 11 13
#includeint isPrime(unsigned int n) { int i; if (n <= 1) { return 0; } for (i = 2; i * i <= n; i++) { if (n % i == 0) { return 0; } } return 1;}int main() { int m, n; while (scanf("%d %d", &m, &n) != EOF) { int i, count = 0; for (i = m; i <= n; i++) { if (isPrime(i)) { printf("%d", i); } } printf("\n"); } return 0;}
isPrime函数:该函数用于判断一个数是否为素数。其逻辑基于试除法,即检查从2到√n的所有整数是否能整除n。如果有任何一个数能整除n,则n不是素数。
main函数:作为程序的主函数,负责读取输入并输出结果。程序通过循环读取每组输入的n和m,然后遍历从m到n的所有整数,利用isPrime函数筛选出素数并打印。
输出要求:输出的素数之间用空格分隔,最后一个数后不加空格。每处理完一组输入后,换行输出。
转载地址:http://zsux.baihongyu.com/