AT1476 素数判定

题目描述

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

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 1 1 行目には、整数 N(1 ≦ N ≦ 109) N(1\ ≦\ N\ ≦\ 10^9) N(1 ≦ N ≦ 109) が与えられる。

输出格式

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

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

题意翻译

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

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

感谢@LW_h_FP 提供的翻译

输入输出样例

输入 #1

42

输出 #1

Not Prime

输入 #2

49

输出 #2

Prime

输入 #3

3

输出 #3

Prime

输入 #4

1

输出 #4

Not Prime
// Created on 2020/2/4

/*#include <iostream>
#include <cstring>
#include <cstdlib>
#include <algorithm>*/
#include <bits/stdc++.h>
#define A 500+5

using namespace std;

//int i,j,k;

const int maxn=INT_MAX;

const int idata=20+5;
int a[idata],temp[idata];
bool judge[idata];
//int cnt;
int n,r;

inline bool primer(long long n)
{
    if(n==1)return false;
    if(n==2||n==3||n==5)return true;

    if(n%2!=0&&n%3!=0&&n%5!=0) return true;
    return false; 
    
    }
int main()
{
    long long n;
    cin>>n;
    if(primer(n))
        cout<<"Prime"<<endl;
    else cout<<"Not Prime"<<endl;
    return 0;

}
发布了156 篇原创文章 · 获赞 8 · 访问量 3878

猜你喜欢

转载自blog.csdn.net/C_Dreamy/article/details/104166525