bnu oj 13288 Bi-shoe and Phi-shoe
题目链接:
http://www.bnuoj.com/contest/problem_show.php?pid=13288
题目大意:
给出一个n,然后给出n个幸运数([1,m]中不能被m整除的数的数目总和n,在[1,n]中的数称为m的幸运数),求原来的n个数的和最小是多少?
解题思路:
由素数的性质可以知道,素数的因子最少,所以每个幸运数的最小原数应该为素数,所以我们先把素数筛选出来,逐个比较就好啦。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; const int maxn = ;
const int N = ; int a[maxn], b[N];
void isprim();
int main ()
{
int t, n, m, l=;
memset (a, , sizeof(a));
memset (b, , sizeof(b));
isprim(); scanf ("%d", &t);
while (t --)
{
long long sum = ;
scanf ("%d", &n);
while (n --)
{
scanf ("%d", &m);
sum += b[a[m]];//因为在打素数表时候已经记录,所以就不用再循环寻找
}
printf ("Case %d: %lld Xukha\n", l++, sum);
}
return ;
} void isprim()//筛选素数
{
int i, j = , k;
for (i=; i<maxn; i++)
if (!a[i])
{
b[j++] = i;//抄出素数
for (k=i; k<maxn; k+=i)
a[k] = j;
}
j = ;
for (i=; i<maxn; i++)
{
if (j < a[i])
j = a[i];
a[i] = j;//距离i最近的素数是第j个素数
}
}
bnu oj 13288 Bi-shoe and Phi-shoe的更多相关文章
- BNU OJ 33691 / LA 4817 Calculator JAVA大数
留着当个模板用,在BNU上AC,在LA上RE……可能是java的提交方式不同??? 数和运算符各开一个栈. 表达式从左到右扫一遍,将数存成大数,遇到数压在 数的栈,运算符压在 运算符的栈,每当遇到右括 ...
- BNU OJ 51005 BQG's Quadrilateral Bricks
#include<cstdio> #include<cstring> #include<cmath> #include<vector> #include ...
- BNU OJ 51000 BQG's Random String
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; +; cha ...
- BNU OJ 51003 BQG's Confusing Sequence
二进制++高精度取模 #include<cstdio> #include<cstring> #include<algorithm> using namespace ...
- BNU OJ 50999 BQG's Approaching Deadline
#include<cstdio> #include<algorithm> using namespace std; +; struct Homework { long long ...
- BNU OJ 50998 BQG's Messy Code
#include <cstdio> #define _(l) int l #define ___(l,L) for (_(o)=0,x=l o*2;o<x;o++)O= L o; # ...
- BNU OJ 50997 BQG's Programming Contest
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...
- BNU OJ 1027 金币系统
金币系统 Time Limit: 1000ms Memory Limit: 65535KB 64-bit integer IO format: %lld Java class name: ...
- 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。
查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...
随机推荐
- JUNIT -- springMVC的action进行单元测试
原文:http://blog.csdn.net/gaopeng0071/article/details/49946575 我开发环境springMVC版本3.0.4 样例代码: package com ...
- 如何用grep命令同时显示“匹配行”上下的n行?
如何用grep命令同时显示匹配行上下的n行 标准unix/linux下的grep通过以下参数控制上下文 grep -C 5 foo file 显示file文件中匹配foo字串那行以及上下5行gre ...
- Linux下的lds链接脚本简介(一)
转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml 一. 概论 每一个链接过程都由链接脚本(linker ...
- 如何扩展ArcGIS中的元数据编辑器
http://www.esrichina-bj.cn/old../library/arcnews16/Metadata.htm http://www.esrichina-bj.cn/old../lib ...
- [转]JS 引擎的执行机制
转: https://www.cnblogs.com/wancheng7/p/8321418.html ------------------------------------------------ ...
- JSX 语法
jsx 不能直接运行,是被 babel-loader 中的 react 这个 preset 翻译的 需要注意: 1.必须被一个单独的大标签包裹,比如:div 或者 section 2.标签必须封闭 3 ...
- 【Mongodb教程 第七课 】MongoDB 查询文档
find() 方法 要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法. 语法 基本的find()方法语法如下 >db.COLLECTION_NAME.find() ...
- 嵌入式开发之davinci--- 8148 小站信息
http://zhan.renren.com/tag?value=dm8148#!//more/3602888498051423017 http://zhan.renren.com/dm8148evm ...
- Ctags基本配置
一般linux系统都会自带ctags,也可输入"ctags"看有木有该命令.有的话速度配置吧,没有话yum install ctags安装吧. 打开vim 配置文件,要是没该文件就 ...
- perl BEGIN block and END block
1 本质上就是一段代码 BEGIN在程序运行前执行,END在程序运行之后执行. 2 BEGIN END的行为和所在的位置无关 也就是说,无论BEGIN和END block位于代码的哪里,最先执行的是B ...