SJTU 3001. 二哥的幸运

Description

二哥是一个挺二的人,在二哥的世界观中,有些数字代表着幸运,如果在某一天二哥能够看到一个幸运数字,那么他将非常高兴。当然,二哥对于幸运的定义也是不同凡响,如果一个数字只包含4或者7两种字符,并且他是一个质数(素数),那么二哥认为他是一个幸运数字。二哥想请聪明的你帮忙回答,给定的一个数是否是幸运数字。

Input Format

第1行有1个整数N,表示要测试的数据

Output Format

输出一行字符串,YES或者NO。 表示是否是个幸运数字

Sample Input

47

Sample Output

YES

样例解释

质数的定义为只能被1和他本身整数的数。2是最小的质数。

数据范围

对于100%的数据: 1≤N≤1000000;

思路:比较水的题

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
typedef long long ll;
using namespace std;
const int maxn = 1000005;

int prime[maxn], vis[maxn], cnt;

void init() {
	memset(vis, 0, sizeof(vis));
	vis[1] = vis[0] = 1;
	cnt = 0;
	for (ll i = 2; i < maxn; i++) {
		if (vis[i]) continue;
		prime[cnt++] = i;
		for (ll j = i*i; j < maxn; j += i)
			vis[j] = 1;
	}
}

int main() {
	int n;
	init();
	while (scanf("%d", &n) != EOF) {
		int flag = 1;
		int tmp = n;
		while (n) {
			if ((n%10) != 4 && (n%10) != 7) {
				flag = 0;
				break;
			}
			n /= 10;
		}
		if (flag && !vis[tmp])
			printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}
时间: 2024-10-06 00:29:44

SJTU 3001. 二哥的幸运的相关文章

【算法学习笔记】53.单调队列的简单应用 SJTU OJ 1034 二哥的金链

1034. 二哥的金链 Description 一个阳光明媚的周末,二哥出去游山玩水,然而粗心的二哥在路上把钱包弄丢了.傍晚时分二哥来到了一家小旅店,他翻便全身的口袋也没翻着多少钱,而他身上唯一值钱的就是一条漂亮的金链.这条金链散发着奇异的光泽,据说戴上它能保佑考试门门不挂,RP++.好心的老板很同情二哥的遭遇,同意二哥用这条金链来结帐.虽然二哥很舍不得这条金链,但是他必须用它来付一晚上的房钱了. 金链是环状的,一共有 N 节,老板的要价是 K 节.随便取下其中 K 节自然没问题,然而金链上每一

sjtu oj 1034 二哥的金链

一道比较有意思的题目,我把队列改造了一下然后ac了,后来学数据结构的时候发现我改的队列还有个名词,叫单调队列,心里颇为激动,于是把题目和我的代码发上来与大家分享一下. Description 一个阳光明媚的周末,二哥出去游山玩水,然而粗心的二哥在路上把钱包弄丢了.傍晚时分二哥来到了一家小旅店,他翻便全身的口袋也没翻着多少钱,而他身上唯一值钱的就是一条漂亮的金链.这条金链散发着奇异的光泽,据说戴上它能保佑考试门门不挂,RP++.好心的老板很同情二哥的遭遇,同意二哥用这条金链来结帐.虽然二哥很舍不得

【算法学习笔记】87. 枚举路径 SJTU OJ 1999 二哥找宝藏

这个题只用BFS来搜索一次会很麻烦, 因为每次经过一个宝藏之后,要把所有的vis重置(因为可以重复经过同一点, 但是这样会有很多不必要的路径) 看题目的暗示 最多只有5个宝藏  我们要把所有的宝藏收集齐全, 如果确定了收集的顺序, 那么也就确定了路径 那么可以知道 A55的排列一共是120种路径 遍历起来毫无压力 我们枚举所有宝藏的全排列, 然后从起点开始走, 记录整个路径的步数, 最后取最小值即可. 这里生产全排列的方法利用了 STL的next_permutation函数 非常爽....(要引

sjtu oj 1008 二哥买期货问题

1008. 二哥买期货 Description 二哥想知道在一段时期内,一共有多少个交易日.期货交易日的限定如下: 周六.周日不能交易 元旦期间(1月1日)不能交易 五一劳动节期间(5月1日至3日)不能交易 十一国庆节期间(10月1日至7日)不能交易 没有在上述要求中提到的日期均可交易 Input Format 第一行有一个整数n,表示一共有n组数据. 每组数据都有一行,是两个用空格分开的日期,分别为开始日期和结束日期.日期格式为YYYY-MM-DD(比如2010-11-11):数据保证开始日期

【算法学习笔记】54.约瑟夫问题 模拟、逆推动规 SJTU OJ 1038 二哥的约瑟夫

Description 话说二哥当年学习数据结构的时候遇到了那道猴子报数的题目,其实这就是经典的约瑟夫问题. 可是当年的二哥还是个毛头小子,只会用模拟的方法,而其他同学却使用了一些令二哥完全摸不到头脑的方法. ……二哥一怒之下改了题目…… 话说当年花果山的猴子要选大王,选举办法如下: 所有猴子按1-M编号围坐一圈,二哥站在圈中心,由二哥指定一个整数Kn, 之后猴子们从1号开始按顺序报数,报到Kn的猴子退出到圈外,二哥再报出一个整数Kn+1, 然后由刚刚退出的猴子的下一只猴子再开始报数,如此循环报

【算法学习笔记】91.简单森林计数 SJTU OJ 1045 二哥的家族

其实巨水...然而 不用scanf prinf 根本过不了.....真无聊 第一版代码有点问题 效率不高 主要是考虑到这个家族有可能一开始就是个森林 不是从树里分出去的 实际上数据点还是一棵树 然后变成的森林 这样的话只要三个数组就可以了 alive记录是否活着 sons记录每个人的子节点个数 father记录每个人的父节点 可以根据alive[father[x]]判断x是否是一个树的根节点 cnt 维护家族数目 每次死人的时候 判断死的人是某个树的根节点还是只是一个叶子节点 就可以了 #inc

【算法学习笔记】78. STL二分的练习 下标映射的处理技巧 SJTU OJ 1053 二哥的内存

水题也要优化 1.用两个数组单独记录下标的更新 2.用STL中lower_bound来进行二分查找. 要注意lower_bound的返回值意义 是大于等于val的第一个,所以返回值要进行判断才可以利用 #include <iostream> #include <cstdio> #include <algorithm> #include <cstdlib> using namespace std; struct Point { int x; int y; in

幸运抽奖,分解一个千位数求各位数之和

import java.util.Scanner; /** * @author 蓝色以太 * 幸运抽奖 */ public class LuckyDraw { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入4位会员卡号:"); int num=sc.nextInt(); int ge=num%10; int shi=num%100/10

bzoj4568 [Scoi2016]幸运数字

Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一些旅行者希望游览 A 国.旅行者计划乘飞机降落在 x 号城市,沿着 x 号城市到 y 号城市之间那条唯一的路径游览,最终从 y 城市起飞离开 A 国.在经过每一座城市时,游览者就会有机会与这座城市的幸运数字拍照,从而将这份幸运保存到自己身上.然而,幸运是不能简单叠加的,这一点游览者也十分清楚.他们迷