C++/Java写L1-028 判断素数 (10 分)
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N
(≤ 10),随后N
行,每行给出一个小于231的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes
,否则输出No
。
输入样例:
2
11
111
结尾无空行
输出样例:
Yes
No
结尾无空行
C++代码如下:
#include<stdio.h>
#include<math.h>
int fun(int n);
int main()
{int N;int arr[11];scanf("%d",&N);int i;for(i=0;i<N;i++)scanf("%d",&arr[i]);for(i=0;i<N;i++){int t=fun(arr[i]);if(t==1)printf("Yes\n");if(t==0)printf("No\n");}return 0;
}int fun(int n)
{int i;int temp=1;int t;if(n>=5) t=sqrt(n);else t=n;if(t==1)return 0;else{for(i=2;i<t;i++){if(n%i==0){temp=0;break;}}if(temp==1)return 1;elsereturn 0;}
}
Java方法一
思路:从2到n-1,一个个判断是否整除,但是这样会有部分答案运行超时,并不能拿满分。
代码如下:
import java.util.Scanner;
public class Main {private static Scanner sc;public static void main(String[] args) {sc = new Scanner(System.in);int a = sc.nextInt();int[] s = new int[a];for(int i = 0;i < a;i++) {s[i] = sc.nextInt();}for(int i = 0;i < a;i++) {if(s[i] <= 1) {System.out.println("Yes");}else {panduan(s[i]);}}}public static void panduan(int n) {boolean really = true;for(int i = 2;i <n;i++) {if(n%i == 0) {System.out.println("No");really = false;break;}}if(really){System.out.println("Yes");}}
}
Java方法二
思路:把所有偶数去掉后,在从3到n-1隔两个除一次。时间再次降低,但是还是有答案超时,说明测试用例的判断数字很大。
代码如下:
import java.util.Scanner;
public class Main {private static Scanner sc;public static void main(String[] args) {sc = new Scanner(System.in);int a = sc.nextInt();int[] s = new int[a];for(int i = 0;i < a;i++) {s[i] = sc.nextInt();}for(int i = 0;i < a;i++) {if(s[i] <= 1) {System.out.println("Yes");}else {panduan(s[i]);}}}public static void panduan(int n) {boolean really = true;if(n%2 == 0 && n != 2) {System.out.println("No");really = false;}else {for(int i = 3;i <n;i=i+2) {if(n%i == 0) {System.out.println("No");really = false;break;}}}if(really){System.out.println("Yes");}}
}
Java方法三
思路:在方法二的基础上使用Math.sqrt()函数,成功AC
代码如下:
import java.util.Scanner;
public class Main {private static Scanner sc;public static void main(String[] args) {sc = new Scanner(System.in);int a = sc.nextInt();int[] s = new int[a];for(int i = 0;i < a;i++) {s[i] = sc.nextInt();}for(int i = 0;i < a;i++){panduan(s[i]);}}public static void panduan(int n) {boolean isPrime = true;if(n == 1 || n %2 ==0 && n !=2 ){isPrime = false;}else {for( int i =3; i <= Math.sqrt(n); i+=2){if( n % i == 0){isPrime = false;break;}}}if( isPrime){System.out.println("Yes"); }else{System.out.println("No");}}
}
C++/Java写L1-028 判断素数 (10 分)相关推荐
- 7-49 判断素数 (10 分)
7-49 判断素数 (10 分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数. 输出 ...
- 10 判断素数 (10分)
字节跳动校招内推码: C4BDSMC 投递链接: https://job.toutiao.com/s/J691fRK 内推交流QQ群:1049175720 think: 1素数:除1以外只能被其自身整 ...
- L1-028 判断素数 (10 分)
L1-028 判断素数 (10 分) 对于这道题还是很简单的,思路如下: 要判断 x 是否是质数,我们可以从2遍历到sqrt(x) ,若之间有数可以整除x,那么x就不是质数,否者就是. 需要记住 x为 ...
- 7-2 判断素数 (10分)
7-2 判断素数 (10分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2e31 的需要判断的正整数. ...
- L1-028 判断素数 (10分)
L1-028 判断素数 (10分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的 ...
- (最优解)L1-028 判断素数 (10分)——17行代码AC
立志用更少的代码做更高效的表达 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整 ...
- L1-028 判断素数 (10 分) 简单易懂
本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数. 输出格式: 对每个需要判断的正整数,如 ...
- L1-028 判断素数 (10 分)(C语言版)
本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于 231的需要判断的正整数. 输出格式: 对每个需要判断的正整数 ...
- L1-028 判断素数 (10分) 笔记
本题的目标很简单,就是判断一个给定的正整数是否素数. 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No. 输入样例: 2 11 111 输出样例: Yes No 注 ...
最新文章
- 数据预处理代码分享——机器学习与数据挖掘
- 基于相空间重构的混沌背景下微弱信号检测方法仿真
- Linux学习笔记6——文本处理相关命令
- 331页!2021年的精华尽在这本数据库技术年刊
- “男友家里存款只有20万,我该和他结婚么?”数据告诉你多少家庭才能有20万的存款...
- Facebook正在追踪你,哪怕你不是用户丨扎克伯格国会听证第二日
- python递归函数分叉树枝_python递归函数绘制分形树的方法
- FGSM实例:利用fgsm攻击RMB识别模型
- 运行kettle-8.2源码
- Resource_Hacker破解版下载
- spring boot校园二手销售网站 毕业设计源码161417
- 什么是抽象类和抽象方法,以及他们的特点
- 基于h5的航空订票系统的设计与实现
- Inverse/Reverse/Converse的辨异
- Android 上能提高学习工作效率的应用
- 【mongodb】比较符及修改器
- [转] 绝对实用!60款免费软件逐个点评下载
- Java 基础 利用数组来实现银行注册开户、存钱、取钱
- 达摩院金融科技负责人蒋国飞:技术自主研发并全面开放
- ios触摸超出_iOS开发笔记之多点触控(一)处理触摸的4个方法
热门文章
- javaweb JAVA JSP购物系统jsp销售系统 (jsp电子商务系统,购物商城)甜品蛋糕在线购物系统案例
- AUTOCAD——多重引线样式
- php正则替换短信模板,【PHP】短信接口(正则匹配)
- java isinstance_java中运算符instanceOf和Class?.isInstance的对比
- 看懂联想服务器系列产品分类(上)
- 生成6位数的数字验证码
- html+css+js表白代码,实现打字动画、动态爱心、图片旋转木马特效、下雪特效
- tim指定保存云服务器_腾讯tim微云怎么使用-使用腾讯tim微云管理文件的方法 - 河东软件园...
- 网络工具的瑞士军刀netcat
- Scala总结之基础练习和面向对象