例如:L=2,此时9个长度为2位的数为:
12,23,34,45,56,67,78,89,90.其中素数有:23,67,89
分析:
先根据长度求出9个数,这里注意并没有0打头的数,所以只有9个。使用数组和下标模运算模拟环状的数据结构。使用循环计算出对应的数据,存入结果数组中。遍历数组,确定素数。
C代码:
#include < stdio.h >
#include < stdlib.h >
#include < math.h >
#include < string.h >
#define LEN 9
int main(int argc, char **argv)
{
int ring[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int re[LEN];
memset(re, 0, sizeof(int) * LEN);
int l, i, j, flg;
scanf("%d", &l);
for (i = 0; i < 10; i++) {
for (j = 0; j < l; j++) {
re[i] = re[i] + ring[(i+j) % 10] * (int)pow((double)10, (double)(l-1-j));
}
}
for (i = 0; i < LEN; i++) {
flg = 1;
for (j = 2; j < re[i]; j++) {
if (re[i] % j == 0) {
flg = 0;
}
}
if (flg) {
printf("%d\t", re[i]);
}
}
printf("\n");
/**
for (i = 0; i < LEN; i++) {
printf("%d\n", re[i]);
}
*/
return 0;
}
没有评论:
发表评论