Python和Java编程题(三)
1.题目:判断101到200之间有多少个素数,并输出所有素数
题目分析:判断一个数是否为素数,只需要判断这个数有没有除1和它自身外的其他因数。因此,判断这个数能否被2-它的平方根中的任意一个数整除即可。
题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html
程序主要两个主体,一个是对101到200之间的数进行循环,一个是对每个数进行判断。
Java代码实现:
public class FindPrimeNumber {
/*
* 定义方法FindCount寻找m~n之间的素数
*/
int FindCount(int m,int n){
int Count = 0;
for(int i=m;i<=n;i++) {// 对m~n间的每个数进行判断
int flag = 1;
for(int j=2;j<=i/2;j++) {//判断这个数是否为素数
if(i%j==0) {
flag = 0;
break;
}
}
if(flag==1) {
Count += 1;
System.out.print(i+",");
}
}
return Count;
}
/*
* 上面这个方法其实可以分成两个方法,一个方法对m~n之间的数进行循环
* 一个方法判断这个数是否为素数
*
*/
public static void main(String args[]) {
FindPrimeNumber x = new FindPrimeNumber();
int m=101,n=200;
int Sum = x.FindCount(m, n);
System.out.println("");
System.out.printf("%d到%d之间有%d个素数",m,n,Sum);
}
}
对于Java,如果通过定义两种方法而不是单纯一种方法解决问题,代码应该会更加简洁一些
Python实现:
# -*- coding: utf-8 -*-
import math
'''
判断x是否为素数,只需对2~sqrt(x)这些数进行判断即可(也可以对2~n/2进行判断)
因为若是有大于sqrt(x)的因数,则必然存在相对应的小于sqrt(x)的因子
使用sqrt()和ceil()方法,因此导入math模块
'''
def FindPrimeNumber(m, n):
Sum = 0;
for x in range(m,n+1):# 对m~n间的数进行循环判断
flag = True
for i in range(2,math.ceil(math.sqrt(x))+1):#这里一定要将sqrt(x)包含进循环之中
if x%i == 0:# 除了1和它本身以外不再有其他因数,称为素数
flag = False
break
if flag == True:
Sum = Sum + 1
print(str(x)+",",end="")#这里使用end=""能控制输出不自动换行
return Sum; if __name__ == '__main__':
M = 101
N = 200
Count = FindPrimeNumber(M, N)
print('\n{}和{}之间有{}个素数'.format(M, N, Count))
Python和Java编程题(三)的更多相关文章
- Python和Java编程题(一)
今天偶尔看到一个博客有贴了五十个编程题,决定以后两天左右做一道题 题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html 1.题目 一个数如 ...
- Python和Java编程题(六)
1.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时, ...
- Python和Java编程题(四)
1.题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 分析:只需要对三位数的数字进行循环(100~999),判断三 ...
- Python和Java编程题(五)
题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的 ...
- Python和Java编程题(二)
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21 ...
- 50道经典的JAVA编程题(46-50)
50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...
- 50道经典的JAVA编程题(41-45)
50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...
- 50道经典的JAVA编程题(21-25)
50道经典的JAVA编程题(21-25),明天早上java考试了,还是坚持做题吧...这题比老师的题好多了! [程序21]TestJieCheng.java题目:求1+2!+3!+...+20!的和1 ...
- 50道经典的JAVA编程题 (16-20)
50道经典的JAVA编程题 (16-20),用了快一个下午来做这10道题了,整理博客的时间貌似大于编程的时间啊..哈哈 [程序16]Nine.java 题目:输出9*9口诀. 1.程序分析:分行与列考 ...
随机推荐
- Netsharp平台工具常见问题(FAQ)
1. 请问EntityId如何填? 回答:Netsharp中EntityId是经常需要输入的一个字段,因为Netsharp工具一般的源头是实体元数据,也就是一般常说的所谓模型驱动.所以很多工具都需要E ...
- activeMq-2 高可用以及集群搭建
Activemq 的集群方法可以有多种实现方式,我们这里使用zookeeper来实现 要搭建集群,请确保已经搭建好zookeeper环境.这里不再演示. 基本原理: 使用ZooKeeper(集群)注册 ...
- jquery如何在元素后面添加一个元素
jQuery添加插入元素技巧: jquery添加分为在指定元素的里面添加和外面添加两种: 里面添加使用(append 和prepend) 里面添加又分为在里面的前面添加和后面添加 里面的前面添加使用 ...
- python多版本管理包pyenv
前言: CentOS7 默认版本 python2.7.5 ,但是目前项目开发都是在python3的环境下,而单独编译安装python3时会出现各种异常!!! 系统默认python2.7又不能删除,否 ...
- .NET Core微服务之路:让我们对上一个Demo通讯进行修改,完成RPC通讯
最近一段时间有些事情耽搁了更新,抱歉各位了. 上一篇我们简单的介绍了DotNetty通信框架,并简单的介绍了基于DotNetty实现了回路(Echo)通信过程. 我们来回忆一下上一个项目的整个流程: ...
- 从navicat中导入sql文件过大:Got a packet bigger than 'max_allowed_packet' bytes
失败背景:刚才通过navicat向本地mysql数据库中导入sql文件.第一个sql文件(多个表)大小为967M,导入成功: 第二个sql(单个表)大小为50.1M,导入失败. 1.在navicat中 ...
- Oracle 的分页查询 SQL 语句
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T ...
- Java 代码需要使用转义符的地方
1.正则表达式特殊字符 Java 代码中使用到正则表达式里的特殊字符需要使用转义符 \ 进行转义 . ? * + ! ^ $ [ ] ( ) \ 因为反斜线 \ 也是特殊字符,所以转义需双反斜线 \\ ...
- web API简介(四):客户端储存之IndexedDB API
概述 前篇:web API简介(三):客户端储存之Web Storage API 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据. Index ...
- [CocoaPods]常见问题
“现在Swift有一个内置的包管理器,CocoaPods会停止开发吗?” Swift Package Manager(SPM)处于“早期设计和开发”阶段[1].它目前不支持iOS,观看操作系统或Obj ...