AT1476 素数判定

题面翻译

如果 n n n 是素数, n n n 是素数。 如果 N N N 是一个合数且 N N N 既不是偶数也不是 5 5 5 的倍数,并且如果每个数字的和不能被 3 3 3 整除,则 N N N 是类似素数的 否则, n n n 不是素数

类似素数的和素数都输出Prime 否则输出Not Prime

题目描述

原题
洛谷原题

高橋君は素数判定アルゴリズムが大好きです。毎日さまざまな素数判定アルゴリズムを実装して遊んでいます。 しかし、高橋君は素数判定をしすぎてしまったので、素数判定に飽きてしまいました。 そこで高橋君は、「素数っぽく見える数」判定をすることにしました。

$ 1 $ 以上の整数 $ N $ は、以下のように「素数っぽい」かどうかが判定されます。

  • $ N $ が素数であるなら、 $ N $ は「素数っぽい」
  • $ N $ が合成数であるなら、 $ N $ を $ 10 $ 進表記した時の $ 1 $ の位が偶数でも $ 5 $ でもなく、各桁の和が $ 3 $ で割り切れないならば、 $ N $ は「素数っぽい」
  • それ以外の場合、 $ N $ は「素数っぽくない」

整数 $ N $ が与えられるので、 $ N $ が「素数っぽい」場合は"Prime"、そうでない場合は"Not Prime"と出力してください。

翻译:
高桥很喜欢素数判定算法。每天安装各种各样的素数判定算法玩。但是,高桥君的素数判定太多了,所以对素数判定感到厌烦了。因此高桥决定判定“看起来像素数的数”。
1 1 1或更高的整数 N N N确定是否“像素数”,如下所示:
如果 N N N是素数, N N N就是“像素数”
如果 N N N是合数,则将 N N N 10 10 10进制时的倒数第 1 1 1位既不是偶数也不能除以 5 5 5,如果各各位数的和不能除以 3 3 3,则 N N N就是“像素数”
除此之外, N N N为“不像素数”
给出了一个整数 N N N,如果 N N N是“像素数”,请输出“Prime”,否则输出“Not Prime”。

输入格式

入力は以下の形式で標準入力から与えられる。

翻译:输入以,以下形式为标准输入给出。

N
  • 1 行目には、整数 N(1≦N≦10^9) が与えられる。

翻译:对第1行赋予整数N(1≤N≤10^9)。

输出格式

N が「素数っぽい」場合は"Prime"、そうでない場合は"Not Prime"と出力せよ。

出力の末尾に改行を入れること。(21:40修正)

N为“素数”时输出“Prime”,否则输出“Not Prime”。
在输出的末尾加上换行。(21:40修正)
注:换行十分重要,小编曾错了一次

样例

样例输入1

42

样例输出1

Not Prime

样例输入2

49

样例输出2

Prime

样例输入3

3

样例输出3

Prime

样例输入4

1

样例输出4

Not Prime

提示

注:

Sample Explanation 被翻译为 示例说明

Sample Explanation 1

42 42 42 は合成数かつ 1 1 1 の位が偶数なので、「素数っぽくない」と判定されます。

翻译: 42 42 42是合成数且 11 11 11的位是偶数,所以被判定为“不像素数”。

Sample Explanation 2

49 49 49 は素数ではありませんが、「素数っぽい」と判定されます。

翻译: 49 49 49不是素数,但被判定为“像素数”。

Sample Explanation 3

3 3 3 は素数なので、「素数っぽい」と判定されます。

翻译:因为 3 3 3是素数,所以被判定为“像素数”。

Sample Explanation 4

1 1 1 は素数でも合成数でもないので、「素数っぽくない」と判定されます。

翻译: 1 1 1既不是素数也不是合成数,所以被判定为“不像素数”。

解释

只要判断N能否不被2,3,5整除(2,3,5)因为有“像素数”,但是1,2,3,5需要特判

展示

#include<bits/stdc++.h>
using namespace std;
bool bnb(int n) {
	if(n==1)//特判1
		return false;
	if(n==2||n==3||n==5)return true;//特判2,3,5
	if(n%2!=0 && n%3!=0 && n%5!=0)//判断N能否不被2,3,5整除
		return true;
	return false;
}
int main() {
	int n;
	cin>>n;
	bool f=bnb(n);
	if(!f) {//判断是否为“不像素数”
		cout<<"Not Prime\n";//注意换行,此为“不像素数”
		return 0;
	}
	cout<<"Prime\n";//注意换行,此为“像素数”
	return 0;
}

语!

小编写了一个多小时麻烦点点赞,评论评论,小编十分辛楛,下期大概在明天 7 / 12 7/12 7/12,应该是AT54 割り切れる日付
对了 从 2022.7.11 − 2022.7.23 是我在 Z S 集训的日子 从2022.7.11-2022.7.23是我在ZS集训的日子 2022.7.112022.7.23是我在ZS集训的日子
第一次发翻译文,如果有翻译错误希望大家谅解并在评论中告诉小白小编(岳阳楼)这是我的自称
对了今天是小编的生日,希望大家祝小编生日快乐!小编祝大家暑假愉快!小编就挺愉

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值