P2415 集合求和
题目描述
给定一个集合 s(集合元素数量≤30),求出此集合所有子集元素之和。
输入格式 集合中的元素(元素≤1000)
输出格式 s 所有子集元素之和。
输入输出样例
输入 2 3
输出 10
说明/提示
【样例解释】
子集为:∅,{2},{3},{2,3},和为 2 + 3 + 2 + 3 = 10。
【数据范围】
对于100% 的数据,1≤∣s∣≤30,s 所有子集元素之和 ≤10^18。
#include<iostream> using namespace std; #include<math.h> int main(){ int i=0; int a[99]; long long sum=0; while(cin>>a[i]) { sum=sum+a[i]; i++; } sum=sum*pow(2,i-1); cout<<sum; return 0; }
P1217 [USACO1.5] 回文质数 Prime Palindromes
题目描述
因为 151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151151 是回文质数。写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)(一亿)间的所有回文质数。
输入格式 第一行输入两个正整数 a 和 b。
输出格式 输出一个回文质数的列表,一行一个。
输入输出样例
输入
5 500
输出
5
7
11
101
131
151
181
191
313
353
373
383
#include<bits/stdc++.h> using namespace std; int main() {bool Palindromes(int n); bool Prime(int n); int n, m; cin >> n >> m; for (int i = n; i <= m; i++) { if(Palindromes(i) && Prime(i)) { cout << i << endl; } } return 0; } bool Palindromes(int n) { int x = 0; int s = n; while(s > 0) { x = x * 10 + s % 10; s = s / 10; } if(x == n) { return true; } else { return false; } } bool Prime(int n) { bool flag = true; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { flag = false; break; } } if (flag && n > 1) { return true; } else { return false; } }