用c++while语句求两个数之间所有的质数。提示使用者输入2个整数。如果两个整数相等,要求重新输入。如果两个整数相差10000以上,提示可能会花费较长的计算时间。询问用户是否重新输入,重新输入键入“Y”,不重新输入键入“N”,其它输入无效,并再次询问。之后求使用者输入的2个整数之间的所有质数,并显示出来,完成后统计质数的数量。
时间: 2023-04-11 16:00:43 浏览: 129
可以回答这个问题。以下是代码:
#include <stdio.h>
int main() {
int num1, num2, i, j, isPrime, count;
char choice;
do {
printf("请输入两个整数,用空格隔开:");
scanf("%d %d", &num1, &num2);
if (num1 == num2) {
printf("两个数相等,请重新输入。\n");
continue;
}
if (num2 - num1 > 10000) {
printf("两个数相差较大,可能会花费较长的计算时间,是否重新输入?(Y/N)");
scanf(" %c", &choice);
if (choice == 'Y' || choice == 'y') {
continue;
} else {
break;
}
}
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
count = 0;
for (i = num1; i <= num2; i++) {
if (i <= 1) {
continue;
}
isPrime = 1;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) {
printf("%d ", i);
count++;
}
}
printf("\n%d个质数\n", count);
printf("是否重新输入?(Y/N)");
scanf(" %c", &choice);
} while (choice == 'Y' || choice == 'y');
return 0;
}
阅读全文