シクシク素数列 - C言語編
ルール
数値に4か9を含む素数をシクシク素数と呼ぶことにします
19とか41とか149とか。
標準入力として正の整数 N を与えたら N 番目までのシクシク素数を半角カンマ区切りで標準出力してください
例 N = 9 の場合、 19,29,41,43,47,59,79,89,97
N は最大で 100 とします
ソースコード
sksk.c
#include <stdio.h>
//数値から4と9を見つける
int find49(int i49_) {
while (i49_ != 0)
switch (i49_ % 10) {
case 4:case 9: return 1;
default: i49_ /= 10;
}
return 0;
}
//素数を探す
void prime(const int n_) {
for (int i = 1, prime = 0, counter = 0;; ++i, prime = 0) {
for (int j = 1; j <= i; ++j)
if (i % j == 0) ++prime;
if (prime == 2 && find49(i) == 1) {
printf("%d", i);
if (++counter != n_) printf(",");
else break;
}
}
printf("\n");
}
//入力値のシクシク素数を返す
int main() {
int n;
scanf_s("%d", &n);
prime(n);
}
sksk.c
#include <stdio.h>
//数値から4と9を見つける
int find49(int i49_) {
while (i49_ != 0)
switch (i49_ % 10) {
case 4:case 9: return 1;
default: i49_ /= 10;
}
return 0;
}
//素数を探す
void prime(const int n_) {
for (int i = 1, prime = 0, counter = 0;; ++i, prime = 0) {
for (int j = 1; j <= i; ++j)
if (i % j == 0) ++prime;
if (prime == 2 && find49(i) == 1) {
printf("%d", i);
if (++counter != n_) printf(",");
else break;
}
}
printf("\n");
}
//入力値のシクシク素数を返す
int main() {
int n;
scanf_s("%d", &n);
prime(n);
}
とりあえず30行で実装。
高速化はしてないです。
実行結果
出力結果(入力7)
19,29,41,43,47,59,79
出力結果(入力9)
19,29,41,43,47,59,79,89,97
出力結果(入力19)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239
出力結果(入力22)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239,241,269,293
出力結果(入力49)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239,241,269,293,347,349,359,379,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,509,541,547,569
出力結果(入力100)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239,241,269,293,347,349,359,379,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,509,541,547,569,593,599,619,641,643,647,659,691,709,719,739,743,769,797,809,829,839,859,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1019,1039,1049,1069,1091,1093,1097,1109,1129,1193,1229,1249,1259,1279,1289,1291,1297,1319
ソースコードのライセンス
出力結果(入力7)
19,29,41,43,47,59,79
出力結果(入力9)
19,29,41,43,47,59,79,89,97
出力結果(入力19)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239
出力結果(入力22)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239,241,269,293
出力結果(入力49)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239,241,269,293,347,349,359,379,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,509,541,547,569
出力結果(入力100)
19,29,41,43,47,59,79,89,97,109,139,149,179,191,193,197,199,229,239,241,269,293,347,349,359,379,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,509,541,547,569,593,599,619,641,643,647,659,691,709,719,739,743,769,797,809,829,839,859,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1019,1039,1049,1069,1091,1093,1097,1109,1129,1193,1229,1249,1259,1279,1289,1291,1297,1319
These codes are licensed under CC0.
この記事のソースコードはCC0ライセンスとします。
ぜひ、自由に改変して遊んでみてください。
Author And Source
この問題について(シクシク素数列 - C言語編), 我々は、より多くの情報をここで見つけました https://qiita.com/gis/items/8f17db48faa39046f665著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .