Time Limit: 2 Seconds Memory Limit: 65536 KB
Singles' Day(or One's Day), an unofficial holiday in China, is a pop culture entertaining holiday on November 11 for young Chinese to celebrate their bachelor life. With the meaning of single or bachelor of number '1' and the huge population of young single man. This festival is very popular among young Chinese people. And many Young bachelors organize parties and Karaoke to meet new friends or to try their fortunes that day.
On Singles' Day, a supermarket has a promotional activity. Each customer will get a ticket on which there are two integers b and N, representing an integer M that only contains N digits 1 using b as the radix. And if the number M is a prime number, you will get a gift from the supermarket.
Since there are so many customers, the supermarket manager needs your help.
Input
There are multiple test cases. Each line has two integers b and N indicating the integer M, which might be very large. (2 <= b <= 16, 1 <= N <= 16)
Output
If the customer can get a gift, output "YES", otherwise "NO".
Sample Input
3 3 2 4 2 1 10 2
Sample Output
YES NO NO YES
Hint
For the first sample, b=3, N=3, so M=(111)3, which is 13 in decimal. And since 13 is a prime number, the customer can get a gift, you should output "YES" on a line.
题意:
给出 B,N(1 ~ 16),代表用 N 个 1 构成的 B 进制数。判断这个数是不是素数,是则输出 Yes,不是则输出 No。
思路:
N 进制化成十进制后判断是否素数即可。主要要开unsign long long,且循环到开方数,而不是数的一半,不然会超时。
一开始循环到num / 2 来判断,导致 TLE,后想了各种办法推了各种公式,也知道可以打表,但是一直以为是什么需要技巧的题目。
AC:
#include<stdio.h> int test(unsigned long long num) { if(num == 1) return 0; for(unsigned long long i = 2;i * i <= num;i++) if(!(num % i)) return 0; return 1; } int main() { int b,n; while(~scanf("%d%d",&b,&n)) { unsigned long long sum = 0,k = 1; for(int i = 0;i <= n - 1;i++) { sum += k; k *= b; } if(test(sum)) printf("YES\n"); else printf("NO\n"); } return 0; }
相关推荐
这些习题程序清单涵盖了多个关键的算法和编程概念,包括二分法、回文数判断、数字分离技术、十进制和其他进制转化以及质数和合数的判断。以下是这些知识点的详细说明: 1. **二分法**: 二分法是一种高效的搜索或...
java代码-使用java解决输出1000以内最大的n个质数及其和。输出形式“质数1+质数2+...+质数n=的源代码 ——学习参考资料:仅用于个人学习使用!
圆位置判定+质数判定+整根式化简三个功能,VB做得。。本人是新手,所以技术可能不太过关,偶尔会有出错的时候,希望高手帮忙优化下,谢谢!
C语言是一种广泛使用的编程语言,适合初学者和专业人士用来实现各种算法,包括素数判断。本篇文章将深入探讨如何用C语言编写程序来判断一个数是否为素数。 首先,我们需要理解素数的基本概念。一个数n如果能被1和它...
在IT领域,大数计算器和素数判断是两个重要的算法概念,它们在计算机科学和编程中有着广泛的应用。本文将围绕“大数计算器”和“素数判断”这两个主题,结合C++语言进行深入探讨。 首先,大数计算器用于处理超出...
我们需要写一个判断一个整数是否是一个素数的函数: 素数是什么呢? 是除了1和它本身以外没有任何的因子. 那么我们只要发现它的一个因子就可以说他不是素数,反之,返回true. 因子是什么? 一个数除以它的...
多种方法判断素数
质数判断程序-判断质数
要求:1)以十进制输出这些素数,每行10 个,每输出一个素数都要有数秒的停顿;2)统计这些素数的个数,以十进制形式输出;3)计算这些素数之和,以十进制形式输出;4)数据的输入和结果的输出都要有必要的提示,且提示独占一行;5...
判断素数,可以修改初始值,使得判断素数的范围更大。
本主题主要围绕C语言实现质数判断的方法进行讨论。 C语言是一种结构化编程语言,适用于编写系统软件和应用程序。对于判断一个数是否为质数,我们可以采用两种基本的算法方法:暴力枚举法和优化的除法检查法。 1. *...
在计算机科学领域,素数(质数)是一个非常基础且重要的概念。素数是指大于1且只有1和它本身两个正因数的自然数。题目给出的【标题】"判断素数_yes_素数的判断_" 和【描述】"输入一个正整数m,判断其是否为素数,是...
判断质数 素数的多种方法 在计算机科学中,判断一个数是否为质数是非常重要的一步骤。质数是大于1的自然数,且仅能被1和本身整除。判断质数的方法有多种,本文将对常见的判断质数的方法进行总结和分析。 1. Trial ...
在这个上下文中,虽然判断素数本身并不直接关联任何特定的设计模式,但可能程序员在实现时使用了某种设计模式,如工厂模式来创建不同的素数判断算法,或者使用策略模式来切换不同的质数测试方法。 总结来说,这个...
本篇文章将深入探讨如何使用C#语言编写一个程序来判断输入的数字是否为素数。 首先,我们需要理解C#的基础语法和控制结构。C#是一种面向对象的编程语言,它的类、方法和控制流程是实现功能的关键元素。在这个问题中...
Java作为一种面向对象的编程语言,提供了丰富的工具和库来处理数学计算,包括判断一个数是否为素数。 素数判断的基本方法是通过循环检查该数除1和自身外是否有其他因数。以下是一种简单的Java实现: ```java ...
根据给定的文件信息,我们可以总结出以下与“用汇编语言求1000以内的质数”相关的知识点。 ### 汇编语言简介 汇编语言是一种低级编程语言,它为每条机器指令提供一个助记符,使得程序员能够更容易地编写程序,并且...
在Java编程中,判断一个数是否为素数是常见的算法问题,尤其对于初学者来说,掌握这个概念及其实现方法至关重要。下面我们将详细讲解如何编写一个Java程序来判断一个整数是否为素数。 首先,我们需要理解素数的定义...
用于判断一个数是否为素数,prim的C语言实现,自己写的,工参考。
简单的质数判断程序