.LAL. 2023-04-07 21:37 采纳率: 97.4%
浏览 43
已结题

用C++代码做输入数字n表示输入个数,讲输入的n个数字中找到里面的所有素数(包括重复的素数),并从小到大输出出来。

用C++代码做输入数字n表示输入个数,讲输入的n个数字中找到里面的所有素数(包括重复的素数),并从小到大输出出来。
例如:
输入
4
3 7 2 1
输出
2 3 7
我的思路:
先判断素数,在判断正确,在排序,在输出,但是自己实现不了

#include <iostream>
using namespace std;

bool IsPrime(int n)
{
    if(n <= 1){
        cout<<n<<"不是素数"<<endl; 
        return false;
    }
    for (int i = 2; i < n; i++)
    {
        if ((n % i) == 0){
            cout<<n<<"不是素数"<<endl;
            return false;
        }
    }
    cout<<n<<"是素数"<<endl;
    return true;
}

int main() {
    int a = 2, b = 17, c = 18;
    IsPrime(a);
    IsPrime(b);
    IsPrime(c);
    return 0;
}

  • 写回答

3条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-04-07 22:04
    关注

    参考如下:

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int prime(int x)
    {
        int i;
        int flag = 1;
        if (x == 1) flag = 0; 
        for (i = 2; i <= sqrt(x); i++)
        {
            if (x % i == 0)
            {
                flag = 0;
                break;
            }
        }
        return flag;
    }
    
    // 从前往后冒泡
    void sort(int a[],int n)
    {
        int i,j,t,noswap;
        for(i=0;i< n-1; i++)
        {
            noswap=1; // 是否交换表示 1:未交换【表示已排序好】 0:交换了
            for(j=0;j<n-1-i;j++)
                if(a[j+1]<a[j])
                {
                    t=a[j+1];
                    a[j+1]=a[j];
                    a[j]=t;
                    noswap=0;
                }
            if(noswap)  // 已经排序好,直接退出就行
                break;
        }
    }
    
    int main()
    {
        int n, m = 0, i, temp;
        cin>>n;
    
        int a[n];
        for(i = 0; i < n; i++)
        {
            cin>>temp;
            if(prime(temp))
                a[m++] = temp;
        }
    
        sort(a, m);
    
        for (i = 0; i < m; i++)
        {
            printf("%d ", a[i]);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月7日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)