(大素数2.1.2.1)UVA 10871 Primed Subsequence(欧拉筛法)

编程入门 行业动态 更新时间:2024-10-17 17:28:15

(大<a href=https://www.elefans.com/category/jswz/34/1764940.html style=素数2.1.2.1)UVA 10871 Primed Subsequence(欧拉筛法)"/>

(大素数2.1.2.1)UVA 10871 Primed Subsequence(欧拉筛法)

/** UVA_10871.cpp**  Created on: 2013年10月7日*      Author: Administrator*/#include <iostream>
#include <cstdio>
#include <cstring>using namespace std;const int maxn = 10011;
bool u[maxn];
int su[maxn];
int num = 0;void prepare() {int i, j;memset(u, true, sizeof(u));for (i = 2; i < maxn; ++i) {if (u[i]) {su[++num] = i;}for (j = 1; j <= num; ++j) {if (i * su[j] > maxn) {break;}u[i * su[j]] = false;if (i % su[j] == 0) {break;}}}
}bool pri(int x) {if (x <= 10010) {return u[x];}int i;for (i = 1; i <= num; ++i) {if (x % su[i] == 0) {return false;break;}}return true;
}int main() {prepare();int t;scanf("%d", &t);while (t--) {int n;scanf("%d", &n);int i, j;int s[n + 1];s[0] = 0;for (i = 1; i <= n; ++i) {scanf("%d", &s[i]);s[i] += s[i - 1];}bool ok = false;for (i = 2; i <= n; ++i) {for (j = 1; j + i - 1 <= n; ++j) {int k = s[i + j - 1] - s[j - 1];if (pri(k)) {ok = true;printf("Shortest primed subsequence is length %d:", i);for (k = 1; k <= i; ++k) {printf(" %d", s[j + k - 1] - s[j + k - 2]);}printf("\n");break;}}if (ok) {break;}}if (!ok) {printf("This sequence is anti-primed.\n");}}return 0;
}

更多推荐

(大素数2.1.2.1)UVA 10871 Primed Subsequence(欧拉筛法)

本文发布于:2024-02-13 21:48:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760698.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:素数   欧拉   UVA   Primed   Subsequence

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!