pat 乙级 1013 数素数(C++)
生活随笔
收集整理的這篇文章主要介紹了
pat 乙级 1013 数素数(C++)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
令 P?i表示第 i 個素數。現任給兩個正整數 M≤N≤10?4,請輸出 PM到 P?N的所有素數。
輸入格式:
輸入在一行中給出 M 和 N,其間以空格分隔。
輸出格式:
輸出從 P?M到 P?N 的所有素數,每 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
分析
- 從2開始,累計素數的個數count,同時與M和N比較,直到滿足輸出條件。
- 從PM開始輸出,直到PN結束,因此renturn 0或著break應放在PN。
- 用另一個變量count2記錄已輸出素數個數,當count2=N-M+1時只輸出值,當count2%10=0時換行,當count2%10!=0時輸出空格。
AC代碼
#include<iostream> #include<cmath> using namespace std; int judge_prime(int x) {int i,temp=(int)sqrt((double)x)+2;if(x==2)return 1;for(i=2;i<temp;i++){if(x%i==0)return 0; }return 1; } int main() {int i,M,N,count=0,count2=0;cin>>M>>N;for(i=2;;i++){if(judge_prime(i)==1){count++;//第N個素數及之前的所有素數if(count>=M&&count<=N){count2++;//輸出的素數個數if(count2==N-M+1){cout<<i;break;}if(count2%10==0){cout<<i<<endl;continue;}cout<<i<<" ";} }}return 0; }有任何問題或者建議,歡迎評論區留言~
更多題解
pat 乙級 題解匯總(持續更新)(C++)
總結
以上是生活随笔為你收集整理的pat 乙级 1013 数素数(C++)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进口公司备案流程(进口公司备案)
- 下一篇: pat 乙级 1015 德才论(C++)