【LeetCode】第504題——七進位制數(難度:簡單)
阿新 • • 發佈:2021-01-27
技術標籤:刷題
題目描述
從鍵盤輸入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;
}