java和c++语言编程的异同之输出制定范围内的素数


解析:素数是指除1自身以外,不能被其他数整除的自然数。显然最小的素数是2,其余偶数均不是素数。对于一个奇数看k,需要使用3~k-1之间的每个奇数进行测试,一旦找到一个奇数j能被k整除,则k不是素数;只有测试完指定范围中的所有奇数,他们都不能被k整除时,才能确定k是素数。实际上,测试范围可以缩小为3~sqrt(k)。例如,判断97是否是素数,测试范围是3~9.84之间的所有奇数3、5、7、9。

java代码如下:

package test;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Prime
{
	static boolean isPrime(int k)          //布尔函数 ,静态方法,类方法
	{
		if(k==2)
			return true;
		if(k<2||k>2&&k%2==0)
			return false;
		int j=(int)java.lang.Math.sqrt(k);
		if(j%2==0)
			j--;                    //获得测试范围内的最大奇数
		while (j>2 && k%j!=0)
			j-=2;
		return j<=1;                    //如果j的取值小于等于1或j<2就能说明k是素数   

	}

	public static void main(String[] args)
	{
		long startTime=System.currentTimeMillis();
		System.out.print("2 ");
		int n=1;
		int k;
		for(k=3;k<1000;k+=2)      //测试所有奇数

			if(isPrime(k))        //测试k是否为素数

		{
			System.out.print(k+" ");
			n++;
			if(n%20==0)
				System.out.println();
		}
		System.out.println("\nn="+n);

		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  //设置日期格式
		System.out.println("当前系统时间为: "+df.format(new Date()));// new Date()为获取当前系统时间

		long endTime=System.currentTimeMillis();
		System.out.println("program运行时间:"+(endTime-startTime)+"ms");

	}

}

C++代码如下:

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
	cout<<"   2"<<setw(5);
	int m,k,i,n=1;
	bool prime;                   //定义prime变量
	for(m=3;m<100;m+=2)           //判别m是否为素数,m由3变化到100,增量为2
	{
		prime=true;
		k=int (sqrt(m));
		for(i=2;i<=k;i++)         //此循环的作用是将m被2~sqrt(m)除,检查是否能整除
			if (m%i==0)
			{
				prime=false;
				break;
			}
			if (prime)
			{
				cout<<setw(5)<<m;
				n=n+1;

			}
			if(n%10==0)
				cout<<endl;
	}
	cout<<endl;
	return 0;
}

注:朋友们可以对比一下各自的异同(当然算法思路是一样的!)

时间: 2024-10-13 17:07:30

java和c++语言编程的异同之输出制定范围内的素数的相关文章

「C语言」「算法」输出指定范围内的素数

#include <stdio.h> //输出指定范围内的素数 int main(){ int a,b; int i,j; printf("请输入整数范围并用空格隔开:\n"); scanf("%d%d",&a,&b); for(i=a;i<=b;i++){ for(j=2;j<=i-1;j++) { if(i%j==0) break; } if(j>=i-1) printf("%d ",i); }

java语言编程基础

java语言基本要素 高级语言如c++.c#.java等都有一些共同性的东西:关键字.标识符. 运算符.注释.数据类型.常量和变量.语句.函数.数组.高级语言在这些要素上大同小异. Java关键字:一些有特定含义,有专门用途的字符串(keyword).Java中关键字均为小写.如do while if int等.不需要记,用多了自然会知道. 标识符 自定义的名称.如类名.变量名.方法名等.合法标识符规则:1 不可使用关键子字 2 不能以数字开头.在java中标识符可有26个英文大小写字母.数字0

Java语言编程学习之Lambda表达式设计和架构的原则[图]

Java语言编程学习之Lambda表达式设计和架构的原则[图]:大家都知道,Lambda表达式是对Java语言的一点简单改进,在JDK标准类库中,运行它的方式各种各样.但是大多数的Java代码都不是由开发JDK的程序猿写的,而是像我们这样的普通程序猿.很多人都会碰到过这样的情况:你实现了一个新功能或修复了一个缺陷,并且对自己的修改很满意.但其他人看了你的代码后--也许发生在代码审查环节,完全不买账!对于什么是好代码,什么是坏代码,存在分歧很正常!设计模式的改变设计模式是人们熟悉的另一种设计思想,

读懂Java中的Socket编程(转)

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序. 餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对这个

华为C语言编程规范

DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved密级:confidentiality levelDKBA 2826-2011.52011-06-02 华为机密,未经许可不得扩散 Huawei Confidential 第2页,共61页Page 2 , Total61修订声明Revision

Java笔试题-线程编程方面

Ja 线程编程方面 60.java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用? 答:有两种实现方法,分别是继承Thread类与实现Runnable接口 用synchronized关键字修饰同步方法 反对使用stop(),是因为它不安全.它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们.结果很难检查出真正的问题所在.suspend()方法容易发生死锁.调用suspend()的时候,

学习go语言编程系列之helloworld

1. 下载https://golang.org/dl/ # Go语言官网地址,在国内下载太慢,甚至都无法访问.通过如下地址下载:https://golangtc.com/download. 2. 安装在windows下,直接一步步点击安装即可. 3. 配置在正式开始go语言编程之前,需要进行一些基础环境变量的配置.在这里主要需要配置2个环境变量:GOROOT和GOPATH.(1)GOROOT:GO的安装路径,需要添加到环境变量中. Linux环境: vim /etc/profile export

使用JetBrains进行go语言编程

折腾了一上午终于把go语言的ide配置好了. 其实GO语言的语法和特性早在去年的时候就学习了一遍.结果后来一直没机会进行开发,结果还是个GO小白.感叹一下,要学好一门编程语言唯一的途径就是多写代码... 最近由于学习需要要做一些GO语言开发的工作,所以又开始折腾环境了. 现在网上和书上提到的IDE有许多,比如vim,emacs,eclipse,liteide,jetbrains,goworks,sublime等等. 下面说说我自己在这些ide折腾的经历: vim:这种大神级别的开发环境我还是不太

java和c++混合编程尝试

下载源代码 现在的程序员,不再像以前一样,掌握一种编程语言就可以混得有模有样了,现实的情况是,真实的项目中,通常是涉及多种编程语言,举几个简单的例子,一个软件为了快速开发,可能是使用 Delphi 或 VB 作为界面开发首选语言,底层的指令或核心算法,会使用 C/C++ 处理,涉及数据处理的时候,为了安全和快速开发,会使用 Javascript 或 Python 等脚本语言实现数据分析处理.因此,开发者应该学习或掌握语言混合编程. C++ 和 Java 是主流的两种编程语言,但是现在整个网上对实