本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数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 分)相关推荐

  1. 7-49 判断素数 (10 分)

    7-49 判断素数 (10 分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数. 输出 ...

  2. 10 判断素数 (10分)

    字节跳动校招内推码: C4BDSMC 投递链接: https://job.toutiao.com/s/J691fRK 内推交流QQ群:1049175720 think: 1素数:除1以外只能被其自身整 ...

  3. L1-028 判断素数 (10 分)

    L1-028 判断素数 (10 分) 对于这道题还是很简单的,思路如下: 要判断 x 是否是质数,我们可以从2遍历到sqrt(x) ,若之间有数可以整除x,那么x就不是质数,否者就是. 需要记住 x为 ...

  4. 7-2 判断素数 (10分)

    7-2 判断素数 (10分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2e​31​​ 的需要判断的正整数. ...

  5. L1-028 判断素数 (10分)

    L1-028 判断素数 (10分) 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 ​31 ​​ 的需要判断的 ...

  6. (最优解)L1-028 判断素数 (10分)——17行代码AC

    立志用更少的代码做更高效的表达 本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 ​31 ​​ 的需要判断的正整 ...

  7. L1-028 判断素数 (10 分) 简单易懂

    本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数. 输出格式: 对每个需要判断的正整数,如 ...

  8. L1-028 判断素数 (10 分)(C语言版)

    本题的目标很简单,就是判断一个给定的正整数是否素数. 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于 2​31的需要判断的正整数. 输出格式: 对每个需要判断的正整数 ...

  9. L1-028 判断素数 (10分) 笔记

    本题的目标很简单,就是判断一个给定的正整数是否素数. 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No. 输入样例: 2 11 111 输出样例: Yes No 注 ...

最新文章

  1. 数据预处理代码分享——机器学习与数据挖掘
  2. 基于相空间重构的混沌背景下微弱信号检测方法仿真
  3. Linux学习笔记6——文本处理相关命令
  4. 331页!2021年的精华尽在这本数据库技术年刊
  5. “男友家里存款只有20万,我该和他结婚么?”数据告诉你多少家庭才能有20万的存款...
  6. Facebook正在追踪你,哪怕你不是用户丨扎克伯格国会听证第二日
  7. python递归函数分叉树枝_python递归函数绘制分形树的方法
  8. FGSM实例:利用fgsm攻击RMB识别模型
  9. 运行kettle-8.2源码
  10. Resource_Hacker破解版下载
  11. spring boot校园二手销售网站 毕业设计源码161417
  12. 什么是抽象类和抽象方法,以及他们的特点
  13. 基于h5的航空订票系统的设计与实现
  14. Inverse/Reverse/Converse的辨异
  15. Android 上能提高学习工作效率的应用
  16. 【mongodb】比较符及修改器
  17. [转] 绝对实用!60款免费软件逐个点评下载
  18. Java 基础 利用数组来实现银行注册开户、存钱、取钱
  19. 达摩院金融科技负责人蒋国飞:技术自主研发并全面开放
  20. ios触摸超出_iOS开发笔记之多点触控(一)处理触摸的4个方法

热门文章

  1. javaweb JAVA JSP购物系统jsp销售系统 (jsp电子商务系统,购物商城)甜品蛋糕在线购物系统案例
  2. AUTOCAD——多重引线样式
  3. php正则替换短信模板,【PHP】短信接口(正则匹配)
  4. java isinstance_java中运算符instanceOf和Class?.isInstance的对比
  5. 看懂联想服务器系列产品分类(上)
  6. 生成6位数的数字验证码
  7. html+css+js表白代码,实现打字动画、动态爱心、图片旋转木马特效、下雪特效
  8. tim指定保存云服务器_腾讯tim微云怎么使用-使用腾讯tim微云管理文件的方法 - 河东软件园...
  9. 网络工具的瑞士军刀netcat
  10. Scala总结之基础练习和面向对象