求助!!!
最近在刷一道求素数的问题,问题描述如下:
| 描述 |
|---|
| 输入一个整数m,输出比m小的最大的素数。 |
| 输入 |
| 一个正整数n,表示测试案例的数量。 每组测试案例中有一个整数m。 |
| 输出 |
| 针对每组案例,输出一个整数,表示比m小的最大的素数。如果比m小的数字里没有素数,则输出-1。 每组案例输出完都要换行。 |
| 样例输入复制样例 |
| 3 11 15 0 |
| 样例输出 |
| 7 13 -1 |
然后我优快云找了许多大佬的代码,只能查到如何求素数,但查不到如何求上一个素数的QAQ
然后想了半天想不出来。。下面是我找到的代码@
#include<iostream>
using namespace std;
int f(int m)
{
int i, k = 0;
for (i = 2; i < m; i++)
{
if (m % i == 0)
{
k++;
}
}
if (k == 0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n=0, a;
cin >> a;
for (a; a>= 2; a--)
{
if (f(a) == 1)
{
cout<< a<<endl;
n=n+1 ;
}
else if (n == 1)
{
break;
}
}
return 0;
}
希望有大佬路过帮忙看看怎么求出上一个素数,或者讲讲怎么在循环中输出上一个数,谢谢!!
博主寻求帮助解决C++编程问题,目标是编写代码找出输入整数m之前的最大素数,已知部分代码只能判断素数,但无法实现连续查找。期待提供解决方案或思路。
600

被折叠的 条评论
为什么被折叠?



