azazinco 2019-10-26 19:05 采纳率: 0%
浏览 1341
已结题

素数环:从1到20这20个数摆成一个环,要求相邻的两个环的和是一个素数。

为什么这段代码输出的是0?

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cstdlib>
using namespace std;
bool b[21] = {0};
int total = 0, a[21] = {0};
int search(int);
int print();
bool pd(int, int);
int main()
{
    search(1);
    cout << total << endl;
}
int search(int t)
{
    int i;
    for (i = 1; i <= 20; i++)
        if (pd(a[i - 1], i) && (!b[i])) {
            a[t] = i;
            b[i] = 1;
            if (t == 20) {
                if (pd(a[20], a[1]))
                    print();
            }
            else search(t + 1);
            b[i] = 0;
            }
}
int print()
{   
    total++;
    cout << "<" << total << ">";
    for (int j = 1; j <= 20; j++)
        cout << a[j] << " ";
    cout << endl;
}
bool pd(int x, int y)
{
    int k = 2, i = x + y;
    while (k <= sqrt(i) && i % k != 0)
        k++;
    if (k > sqrt(i))
        return 1;
    else return 0;
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-10-26 22:17
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))