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;
}
}