1. 程式人生 > >C++ 玩轉素數(前方高能哦)

C++ 玩轉素數(前方高能哦)

以下均為多組輸入:

1. 判斷一個數是否為素數,是則輸出YES,不是則輸出NO

原始碼:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int i,n;
	int flag;
	while(cin>>n)
    {
        if(n<=0 || n==1)             //負數、0和1都不是素數
            cout<<"NO"<<endl;
        else
        {
            flag=0;
            for(i=2;i<n;i++)
            {
                if(n%i==0)
                {
                    flag++;
                    break;
                }
            }
            if(flag==0)
            {
                cout<<"YES"<<endl;
            }
            else
            {
                cout<<"NO"<<endl;
            }
        }
    }
    return 0;
}

程式截圖:

2. 求m和n之間的素數(輸出個數和具體的素數,包含m和n,mn均為正整數)

原始碼:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int i,j,k;
	int m,n;
	int a[1000],t;           //存素數
	int x;                   //每x個換一行
	while(cin>>m>>n)
    {
        cin>>x;
        t=0;                 //存素數陣列初始下標賦值0
        for(i=m;i<=n;i++)
        {
            k=sqrt(i);
            for(j=2;j<=k;j++)
            {
                if(i%j==0)
                {
                    break;
                }
            }
            if(j>=k+1)
            {
                a[t]=i;
                t++;
            }
        }
        cout<<m<<"和"<<n<<"之間的素數個數為:"<<t<<endl;
        for(i=0;i<t;i++)
        {
            if((i+1)%x==0)
                cout<<a[i]<<endl;
            else
                cout<<a[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

程式截圖:

3. 輸入k(k為正整數且k<=10000),求出第k個素數

原始碼:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int i,j,k;
	int flag;
	int a[15000],t;           //存素數
	int kk;                   //第kk個
	while(cin>>kk)
    	{
        t=0;                  //存素數陣列初始下標賦值0
        for(i=2;i<=110000;i++)
        {
            k=sqrt(i);
            for(j=2;j<=k;j++)
            {
                if(i%j==0)
                {
                    flag++;
                    break;
                }
            }
            if(j>=k+1)
            {
                a[t]=i;
                t++;
            }
        }
        cout<<a[kk-1]<<endl;
    }
    return 0;
}

程式截圖:

4. 求m和n之間的迴文素數(輸出個數和具體的素數,包含m和n)

原始碼:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int i,j,k;
	int m,n;
	int a[1000],t;           //存素數
	int b[1000],tt;          //存迴文素數
	int x;                   //每x個換一行
	int turn;
	int originali;
	while(cin>>m>>n)
    {
        cin>>x;
        t=0,tt=0;                 //兩陣列初始下標賦值0
        for(i=m;i<=n;i++)
        {
            k=sqrt(i);
            for(j=2;j<=k;j++)
            {
                if(i%j==0)
                {
                    break;
                }
            }
            if(j>=k+1)
            {
                a[t]=i;
                t++;
            }
        }
        for(i=0;i<t;i++)
        {
            turn=0;
            originali=a[i];
            while(a[i]!=0)
            {
                turn=turn*10+a[i]%10;
                a[i]/=10;
            }
            if(turn==originali)
            {
                b[tt]=originali;
                tt++;
            }
        }
        cout<<m<<"到"<<n<<"之間的迴文素數數目為:"<<tt<<endl;
        for(i=0;i<tt;i++)
        {
            if((i+1)%x==0)
                cout<<b[i]<<endl;
            else
                cout<<b[i]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

程式截圖:



相關推薦

C++ 素數前方高能

以下均為多組輸入: 1. 判斷一個數是否為素數,是則輸出YES,不是則輸出NO 原始碼: #include <iostream> #include <cmath> using namespace std; int main() { int i,n;

高併發、低延遲之C#CPU快取記憶體附示例

寫在前面 好久沒有寫部落格了,一直在不斷地探索響應式DDD,又get到了很多新知識,解惑了很多老問題,最近讀了Martin Fowler大師一篇非常精彩的部落格The LMAX Architecture,裡面有一個術語Mechanical Sympathy,姑且翻譯成軟硬體協同程式設計(Hardware an

.NET高效能程式設計之C#CPU快取記憶體附示例

寫在前面 好久沒有寫部落格了,一直在不斷地探索響應式DDD,又get到了很多新知識,解惑了很多老問題,最近讀了Martin Fowler大師一篇非常精彩的部落格The LMAX Architecture,裡面有一個術語Mechanical Sympathy,姑且翻譯成軟硬體協同程式設計(Hardware a

打碼C語言常見粗心小錯誤 前方高能,一定要點

打碼(C語言)常見粗心小錯誤 標籤(空格分隔): 部落格 目錄 1.前言 小萌新們是不是經常打完碼之發現程式執行達不到自己的效果,然後自己用大腦執行的時候發現完全沒有問題,然後發截圖給TA,最後發現原來是自己一些粗心的小問題導致程式

webpack:webpack的核心對象

外部 工具 概念 優化 split 繼承 commonjs direct 學習 歡迎大家前往雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者介紹:陳柏信,騰訊前端開發,目前主要負責手Q遊戲中心業務開發,以及項目相關的技術升級、架構優化等工作。 前言 webpack 是一個強

python5生成器的原理

turn eval python解釋器 生命周期 固定 eva AR 返回 函數的參數 函數的調用滿足“後進先出”的原則,也就是說,最後被調用的函數應該第一個返回,函數的遞歸調用就是一個經典的例子。顯然,內存中以“後進先出”方式處理數據的棧段是最適合用於實現函數調用的載體,

python6協程

它的 代碼 循環 機制 協程 轉移 多個 來看 函數 多任務系統一般都需要解決一個問題:多個任務如何調度。搶占式調度就是一種很常見的任務調度機制。以單核模式下的進程調度為例,一個進程處於運行狀態,其他的處於就緒隊列,等到當前運行的進程放棄CPU的使用權,系統將CPU立刻分配

python7python多協程,多線程的比較

用戶體驗 time() cut 過程 RR 至少 執行 結果 關鍵字 前段時間在做一個項目,項目本身沒什麽難度,只是數據存在一個數據接口服務商那兒,這就意味著,前端獲取數據需要至少兩次http請求,第一次是前端到後端的請求,第二次是後端到數據接口的請求。有時,後端接收到前端

C語言判斷素數素數兩種方法第二種沒看懂Kkkkk有空一定搞明白非原創

素數又稱質數。所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。 思路1):因此判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。 思路2):另

如何 Linux篇一

為什麼使用Linux window+tomcat 僅限於web環境: window: 1 window程序比較多,會大量的消耗資源和cpu 因為伺服器不是每天關機的,用window來部署,會大量消耗資源,越執行越卡 2 window對於高

C語言中綴字尾棧的實現

#include<stdio.h> #include<stdlib.h> #include<string.h> #define maxsize 20 typedef struct st2 { int top; char str[maxsize];

SpringCloudF版本 四.路由閘道器(zuul)

本篇文章基於: 四.路由閘道器(zuul) 在微服務架構中,需要幾個基礎的服務治理元件,包括服務註冊與發現、服務消費、負載均衡、斷路器、智慧路由、配置管理等,由這幾個基礎元件相互協作,共同組建了一個簡單的微服務系統。 在Spring Cloud微服務系統中,一種常見的負載均衡方式

MySQL1-----安裝MySQL

windows下mysql免安裝配置 1、 下載mysql免安裝壓縮包 下載mysql-5.6.22-winx64.zip  解壓到本地D:\mysql-5.6.22-winx64 2、  修改配置檔案 複製my-default.ini為my.ini  檔案 3、 

手把手教你如何面試Web知識

     本篇是講解關於JavaWeb崗位面試方面的一些對於Web知識的整理,當然,不只是需要知道這個方面的內容,還需要掌握其他方面的知識,我都根據自己的經歷來進行了整理,方便大家進行系統化的學習,只有多複習多研究,才能對技術有更好的掌握,才能拿到更好的offer。 下面是

手把手教你如何面試資料庫

本篇是講解對於資料庫知識的整理,當然,不只是需要知道這個方面的內容,還需要掌握其他方面的知識,我都根據自己的經歷來進行了整理,方便大家進行系統化的學習,只有多複習多研究,才能對技術有更好的掌握,才能拿到更好的offer。 下面是其他方面的知識點,歡迎大家進行瀏覽

手把手教你如何面試作業系統

        本篇是講解關於JavaWeb崗位面試方面的一些對於作業系統知識的整理,當然,不只是需要知道這個方面的內容,還需要掌握其他方面的知識,我都根據自己的經歷來進行了整理,方便大家進行系統化的學習,只有多複習多研究,才能對技術有更好的掌握,才能拿到更好的offer。

OpenVswitch:埠與網橋

一、準備工作 作業系統:ubuntu 18.04 docker: 18.06.1-ce 要想在自己筆記本上進行較為複雜的網路拓撲模擬,除了藉助ovs,還需要有docker這個神器,docker安裝就不贅述了,貼個連結: 二、基本操作 1、網橋的增、刪、查 增

手把手教你如何面試作業系統 PCB IPC

手把手教你如何玩轉面試(作業系統) 2018年10月18日 15:57:01 Cs_hnu_scw 閱讀數:852 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Cs_hnu_scw/article/details/79

postman-----基礎

postman的GUI介面以及各個元件介紹 主介面如下 開啟postman的GUI介面以及各個元素元件介紹 分為下三部分: 1、Head navigation bar (頭部導航欄):此部分有以下選項內容需要了解: (1)New(新建按鈕):可以用來新建集合、請求、mock服務、監聽器、測試環境

SQL Server調優系列如何利用查詢提示Hint引導語句執行

前言 前面幾篇我們分析了關於SQL Server關於效能調優的一系列內容,我把它分為兩個模組。 第一個模組注重基礎內容的掌握,共分7篇文章完成,內容涵蓋一系列基礎運算演算法,詳細分析瞭如何檢視執行計劃、掌握執行計劃優化點,並一一列舉了日常我們平常所寫的T-SQL語句所會應用的運算子。我相信你平常所寫的T-