1. 程式人生 > 其它 >【LeetCode】第504題——七進位制數(難度:簡單)

【LeetCode】第504題——七進位制數(難度:簡單)

技術標籤:刷題

題目描述
從鍵盤輸入m,n
在螢幕上按每行10個的格式輸出m~n之間的全部素數
輸入
兩個整數m n
輸出
m~n間的素數,每行10個,每個數後用空格隔開。如果m和n為素數則包含。
樣例輸入
100 200
樣例輸出
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199

AC程式碼

#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std; bool is_prime(int x) { //用i列舉2~sqrt(x)之間的數,若x被其整除則不是素數 for (int i = 2;i <= sqrt(x);i++) { if (x % i == 0) return false; } return true; } int main() { int m,n; int cnt = 0;//換行計數器 scanf("%d%d",&m,&n); //i列舉m和n之間的所有數
for (int i = m;i <= n;i++) { if (is_prime(i)) { printf("%d ",i); cnt++; //若將該語句移到if (is_prime(i))外則出現格式錯誤,因為如果i不是素數,cnt就不會++,cnt的值跟上一次迴圈的cnt一樣 所以又輸出一次換行 if (cnt % 10 == 0) printf("\n"); } } return
0; }

比如…
在這裡插入圖片描述
所以下面這個程式碼…×

#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>

using namespace std;

bool is_prime(int x)
{
    //用i列舉2~sqrt(x)之間的數,若x被其整除則不是素數
    for (int i = 2;i <= sqrt(x);i++)
    {
        if (x % i == 0) return false;
    }
    return true;
}

int main()
{
    int m,n;
    int cnt = 0;//換行計數器
    scanf("%d%d",&m,&n);
    
    //i列舉m和n之間的所有數
    for (int i = m;i <= n;i++)
    {
        if (is_prime(i)) 
        {
            printf("%d ",i);
            cnt++;
        }
        if (cnt % 10 == 0) printf("\n");
    }
    return 0;
}