用c语言写给定一个整数m,50<m<20000,找出小于m的最大的10个素数
时间: 2023-05-26 21:01:53 浏览: 74
```
#include <stdio.h>
// 判断一个数是否为素数
int isPrime(int num)
{
int i;
for(i=2;i<num;i++)
{
if(num%i==0)
{
return 0; // 不是素数,返回0
}
}
return 1; // 是素数,返回1
}
int main()
{
int m, count=0;
printf("请输入m的值:");
scanf("%d", &m);
// 找出小于m的最大的10个素数
for(int i=m-1;i>1;i--)
{
if(isPrime(i))
{
printf("%d ", i);
count++;
}
if(count==10)
{
break;
}
}
return 0;
}
```
注:本代码存在效率问题,对于较大的m值可能会运行很慢。
相关问题
C语言给定一个整数m(50<m<20000),找出小于m的最大的10个素数。 输入格式: 输入在一行中给出一个正整数m(50<m<20000)。 输出格式: 在一行中按递减顺序输出10个满足条件的素数,每个素数输出占6列。没有其它任何附加格式和字符。
以下是C语言找出小于m的最大的10个素数的代码实现:
```c
#include <stdio.h>
// 判断是否为素数
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, count = 0;
scanf("%d", &m);
for (int i = m - 1; i > 0; i--) {
if (isPrime(i)) {
printf("%6d", i);
count++;
}
if (count == 10) {
break;
}
}
return 0;
}
```
找出一个大于给定整数m且紧随m的素数。用c语言编程
以下是一个简单的C语言程序,可以找到大于给定整数m且紧随m的素数。
```c
#include <stdio.h>
int is_prime(int n)
{
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int m, n;
printf("请输入一个整数m:");
scanf("%d", &m);
n = m + 1;
while (!is_prime(n)) {
n++;
}
printf("大于%d且紧随%d的素数是:%d\n", m, m, n);
return 0;
}
```
程序首先定义了一个函数`is_prime`,用于判断一个数是否是素数。该函数接受一个整数参数n,如果n是素数则返回1,否则返回0。
主函数中,首先要求用户输入一个整数m,然后将n初始化为m+1。程序进入一个循环,判断n是否是素数,如果不是则n加1,直到找到第一个大于m且紧随m的素数。最后打印出该素数的值。
注意,该程序没有对输入的整数进行验证,如果用户输入的不是一个合法的整数,程序将可能出现未定义的行为。为了使程序更健壮,应该对输入进行验证。