永发信息网

编写一个程序,将大于整数m且紧靠m的k个素数存入数组中并输出,要求每行输出5个素数。

答案:5  悬赏:80  手机版
解决时间 2021-03-27 15:27
  • 提问者网友:蓝琪梦莎
  • 2021-03-26 17:20
编写一个程序,将大于整数m且紧靠m的k个素数存入数组中并输出,要求每行输出5个素数。
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-03-26 18:36
int a[k],j=0;
for(int i=21;i<=m+k;i++)
{
a[j++]=i;
}

for(int i=0;iif((i+1)%5)
{cout<}
else
cout<
全部回答
  • 1楼网友:拜訪者
  • 2021-03-26 22:38
这简单。用循环看余数是不是从2到自己本身-1都不等于0决定是不是素数。用计数变量决定换行。
  • 2楼网友:骨子里都是戏
  • 2021-03-26 21:03
#include
#include
typedef unsigned long long ui64;
typedef unsigned int uint;
bool is_prime(ui64 n)
{
    if (n == 2)
        return true;
    for (ui64 i = 3; i*i < (n+1); i += 2)
    {
        if (n % i == 0)
            return false;
    }
    return true;
}
void print_numerics(ui64* nums, uint n)
{
    printf(" 素数: ");
    for (uint i = 0; i < n; )
    {
        for (int j = 0; j < 5; ++j, ++i)
            printf("%4llu", nums[i]);
        printf(" ");
    }
    printf(" ");
}
int main(int argc, char** argv)
{
    ui64 n = 0;
    uint k = 0;
    printf("m:");
    scanf("%llu", &n);
    printf("k:");
    scanf("%u", &k);
    // 需要合法范围
    if (k == 0 || k > (2 << 16))
        printf("k过小或过大 ");
    else
    {
        // 从奇数开始
        ++n;
        n = (n%2) ? n : (n+1);
        ui64* primes = new ui64[k];
        for (uint i = 0; i < k; )
        {
            if (is_prime(n))
                primes[i++] = n;
            n += 2;
        }
        print_numerics(primes, k);
        delete [] primes;
    }
    system("pause");
    return 0;
}


  • 3楼网友:鱼芗
  • 2021-03-26 20:48
Sub Command1_Click()
Dim m As Long, k As Integer
m = 41: k = 20
Dim n As Integer, i As Integer, p As Long
Dim arr() As Long
p = m + 1
Do While n < k
For i = 3 To p / 2
If p Mod i = 0 Then GoTo ip
Next
If 1 + n 5 >= 1 Then ReDim Preserve arr(1 To 5, 1 To 1 + n 5)
arr((n Mod 5) + 1, (n 5) + 1) = p
If n Mod 5 = 4 Then Print p Else Print p;
n = n + 1
ip:
p = p + 1
Loop
End Sub
数组arr存储着我们需要的素数!追问C++的追答我晕,那为什么推荐给我呢?
  • 4楼网友:三千妖杀
  • 2021-03-26 19:50
楼主,我加了格式控制 ,这是完美版
#include "iostream.h"
#include "iomanip.h"
#define M 41
#define K 20
bool isPrim(int N);
int main()
{
int i=0;
int number=M;
int loop=0;
while (i{
number++;
if (isPrim(number))
{
cout<loop++;//计数,为5就打印空格
i++;//计数有多少个素数输出了
}
if (loop==5)
{
cout<loop=0;
}
}
}
bool isPrim(int N)
{
int i;
for (i=2;i{
if (N%i==0)
{
return 0;
}
}
return 1;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯