素数的定义:就是大于1的自然数中,除了1和它本身以外不再有其他因数的数。
指定范围内的所有素数(多组数据)
描述
有两个整数a,b(2<=a<b),输出整数区间[a,b]内的所有素数。
现在已知有多组数据,请依次处理。
输入
有多组数据(用for循环),每组2个整数a,b。
输出
每组数据输出结果(素数间逗号分隔)后换行。
#include<stdio.h>
int main(){
int a,b,flag,ret;
do {
ret = scanf("%d%d", &a, &b);
if (ret == 2) {
flag=0;
for (int i = a; i <= b; i++) {
for (int j = 2; j < i; j++)
if (i % j == 0)
break;
if (i == j) {
if (flag)
printf(",%d", i);
else {
printf("%d", i);
flag = 1;
}
}
}
printf("\n");
}
else
break;
} while (1);
return 0;
}
指定范围内素数个数
描述
编程输入两个正整数a和b(2<=a<b<=999999),输出二者之间的素数的个数。
#include <stdio.h>
#include <math.h>
int main() {
int count1 = 0;//计算素数个数
int a, b;
scanf("%d %d", &a, &b);
for (int n = a; n <= b; n++) {
int flag = 1;//标记是否为素数
for (int j = 2; j <= sqrt(n); j++) {
if (n % j == 0) {//说明有除n和1以外的其他数整除,说明n不是素数
flag = 0;
break;
}
}
if (flag == 1) {//说明2到根号n中没有n的因子
count1++;
}
}
printf("%d", count1);
return 0;
}