日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客网 PAT 算法历年真题 1003: 数素数 (20)

發布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网 PAT 算法历年真题 1003: 数素数 (20) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1003:數素數 (20)

時間限制?1000 ms?內存限制?32768 KB?代碼長度限制?100 KB?判斷程序?Standard?(來自?小小)

題目描述

令Pi表示第i個素數。現任給兩個正整數M <= N <= 10000,請輸出PM到PN的所有素數。

輸入描述:

輸入在一行中給出M和N,其間以空格分隔。

輸出描述:

輸出從PM到PN的所有素數,每10個數字占1行,其間以空格分隔,但行末不得有多余空格。

輸入例子:

5 27

輸出例子:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103


思路分析:

這個題,判斷素數大家都會,重點是在于這個算法是否會超時,以及輸出格式的問題:

素數判斷:
除了1和它本身,沒有其他的因子,稱為素數, 可以看成 循環變量從2到n-1,但是,如果數非常大的話,這就很頭疼了,
咱們來簡化一下判斷素數的方法,比如n=9時,因為9開根等于3,所以,判斷到3就可以確定9不是素數,因此,循環變量i可以從2到根號下n,也就是【2-sqrt(n)】
當一個數被確認是素數時,就要輸出了,

輸出格式:

題目要求,10個一換行
那么咱就直接判斷count(從2開始累加的素數的個數),分為3種情況:

1.素數的位置小于題目要求的輸出范圍,即count<n,這時候,不輸出,繼續循環;
2.素數的位置在題目要求的輸出范圍,首先行內輸出素數,這時,素數后面的輸出,又分為3種情況:
  ①輸出的素數不是一行的第10個,即(count-m+1)%10!=0,
   例如題目給的測試用例,m=5,當count=5時,(count-m+1)%10=1,當count=13時,(count-m+1)%10=9,
   這個時候需要輸出一個空格“ ”;
  ②輸出的素數恰巧是一行的第10個,即(count-m+1)%10=0,
   例如,當count=14時,(count-m+1)%10 = 0 ,這個時候需要輸出一個空行;
  ③數出的素數是要求輸出的最后一個,即count=n,這個時候,直接結束程序即可;

3.素數的位置大于題目要求的輸出范圍,其實,程序永遠都走不到這一步,當輸出的素數是要求輸出的最后一個時,在第二種情況的第三點已經結束程序啦

Java 代碼如下:

import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sca = new Scanner(System.in);int m = sca.nextInt();int n = sca.nextInt();int count = 1;if(m == 1) {System.out.print(2);if(n == 1)return;elseSystem.out.print(" ");}int i = 3;while(true){if(f(i)) { //素數判斷count++; //素數數目+1if(count >= m) { //素數的位置在題目要求的輸出范圍System.out.print(i);// 行內輸出素數if(count==n){//數出的素數是要求輸出的最后一個,結束程序return;}if((count-m+1) % 10 != 0) {//①(count-m+1)%10!=0,輸出空格“ ”System.out.print(" ");}else { //①(count-m+1)%10==0,輸出空行 System.out.println();}}} i+=2;}}//判斷素數static boolean f(int x){for(int j = 2; j < Math.sqrt(x) + 1; j++) {if(x % j == 0) {return false;} }return true;} }

?

?

轉載于:https://www.cnblogs.com/l199616j/p/10307179.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的牛客网 PAT 算法历年真题 1003: 数素数 (20)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。