给定一个整数m(50<m<20000),找出小于m的最大的10个素数。输入格式:输入在一行中给出一个正整数m(50<m<20000)。输出格式:在一行中按递减顺序输出10个满足条件的素数,每个素数输出占6列。没有其它任何附加格式和字符。
时间: 2023-11-22 10:21:42 浏览: 56
求小于m的最大10个素数
5星 · 资源好评率100%
抱歉,我可以回答这个问题。这是一个算法问题,可以通过筛选法或者质数判定法来解决。以下是筛选法的一种实现:
#include <stdio.h>
int main() {
int m, i, j, cnt = 0;
scanf("%d", &m);
int prime[m+1];
for (i = 2; i <= m; i++) {
prime[i] = 1;
}
for (i = 2; i * i <= m; i++) {
if (prime[i]) {
for (j = i * i; j <= m; j += i) {
prime[j] = 0;
}
}
}
for (i = m - 1; i >= 2 && cnt < 10; i--) {
if (prime[i]) {
cnt++;
printf("%6d", i);
}
}
return 0;
}
输入示例:
100
输出示例:
97 89 83 79 73 71 67 61 59 53
阅读全文