PTA-小於m的最大的10個素數 (15分)
7-84 小於m的最大的10個素數 (15分)
給定一個整數m(50<m<20000),找出小於m的最大的10個素數。
輸入格式:
輸入在一行中給出一個正整數m(50<m<20000)。
輸出格式:
在一行中按遞減順序輸出10個滿足條件的素數,每個素數輸出佔6列。沒有其它任何附加格式和字元。
輸入樣例:
229
輸出樣例:
227 223 211 199 197 193 191 181 179 173
程式碼:
#include<iostream>
using namespace std;
#include<string>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<vector>
#include <numeric>
#include<cmath>
int main()
{
int m;
cin>>m;
vector<int>v;
for(int i=2;i<m;i++)
{
int p=0;
for(int j=1;j<=i;j++)
{
if(i%j==0)
{
p++;
}
}
if(p==2)
v.push_back(i);
}
sort(v.begin(), v.end(), greater<int>());
for(int i=0;i<10;i++)
printf("%6d",v[i]);
}
提交的時候只過了兩個測試點,有一個測試點沒有通過
提交時間 | 狀態 | 分數 | 題目 | 編譯器 | 耗時 | 使用者 |
---|---|---|---|---|---|---|
2020/10/23 14:15:45 | 部分正確 | 12 | 7-84 | C++ (g++) | 5 ms | 1910120306 |
測試點 | 提示 | 結果 | 分數 | 耗時 | 記憶體 |
---|---|---|---|---|---|
0 | sample等價,最大最小之間的素數m | 答案正確 | 10 | 5 ms | 380 KB |
1 | 最小m | 答案正確 | 2 | 3 ms | 508 KB |
2 | 最大m | 執行超時 | 0 | – | 0 KB |
這是看到題目中m的範圍為50<m<20000),於是接下來用素數篩。
程式碼:
#include<iostream>
using namespace std;
#include<string>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<vector>
#include <numeric>
#include<cmath>
bool a[20001]={0};
int main()
{
int m;
cin>>m;
vector<int>v;
for(int i=2;i<m;i++)
{
if(a[i]==0)
{
for(int j=2;i*j<m;j++)
{
a[i*j]=1;
}
v.push_back(i);
}
}
sort(v.begin(), v.end(), greater<int>());
for(int i=0;i<10;i++)
printf("%6d",v[i]);
}
就可以通過了。
相關文章
- 小於n的最大數
- 求 10 個整數中的最大值
- 7-7 求n以內最大的k個素數以及它們的和
- 關於素數定理的證明
- C++實現10個數前m個數和後10-m轉換位置C++
- 輸入10個整數,求最大數
- Java中查詢給定數字下最大素數的2種方法Java
- 小於n的最大數,記一道位元組面試題面試題
- 三個數的最大乘積
- 力扣刷題——3007.價值和小於等於 K 的最大數字力扣
- 本題要求統計給定整數M和N區間內素數的個數並對它們求和。
- 輸出一個區間內的質數(素數)
- 第六章 數學問題 ----------6.13 素數的篩法(第十萬零二個素數)
- mysql關於最大連線數、最大併發執行緒數的區別MySql執行緒
- 【JAVA習題六】輸入兩個正整數m和n,求其最大公約數Java
- 用一個巨集實現求兩個數中的最大數
- C語言 不大於2019的最大反數、迴文數C語言
- 統計整數區間[N,M](N,M<100000)中所以非偶數的合數個數,並輸出這個數。
- excel統計大於15小於20的數並求和 統計區間個數的函式Excel函式
- 返回陣列中的最大元素個數陣列
- LeetCode-485-最大連續 1 的個數LeetCode
- 轉載:求任意2個整數互素的概率
- 用於數學的 10 個優秀程式語言
- 求10 個整數中最大值並輸出
- 前m大的數
- PAT-B 1013 數素數 【素數】
- leetcode —— 1004. 最大連續1的個數 IIILeetCode
- 給定陣列中找到最大的兩個數陣列
- 素數個數 <埃式篩 && 尤拉篩>
- 編寫js比較兩個數的最大值(使用者依次輸入兩個數,最後彈出最大的那個值)JS
- L1-028 判斷素數 分數 10
- HDU-1792-( 兩個互質的數線性組合最大不能表示的數和不能表示數的個數)
- 8個關於Python的小技巧Python
- 素數
- 求十個連續最小自然數,非素數。
- Leetcode刷題628. 三個數的最大乘積LeetCode
- 【Halcon】實現分離通道、建立矩形、獲取灰度級、求最大最小均值、求大於某一灰度級的畫素點數
- 如何在 Linux 中查詢最大的 10 個檔案Linux