本文目录一览:
- 1、用JAVA编写一个求1到N所有素数的程序
- 2、使用java编写一个程序,求满足条件1+2+3+....+n>=500的最小n及总和值.
- 3、求用java写一个1!+2!+……+20!的程序
- 4、求一个用java编写的1到100内的素数,并且每行输出5个素数
- 5、求用JAVA书写满足1!+2!+3!+…n!
- 6、用JAVA编写一个求1!+2!+3!+.....+10!的程序
用JAVA编写一个求1到N所有素数的程序
public class ZH
{
public static void main(String args[])
{
int i,j,count=0;
for(i=2;i1000;i++)
{
for(j=2;j=i/2;j++)
{
if(i%j==0) break;
}
if(ji/2)
{
System.out.print(" "+i);
count++;
}
if(count%5==0)
System.out.println();
}
}
}
这是1~1000之间的质数求法,N你看着改变就行了,你看看能不能解决你的问题
使用java编写一个程序,求满足条件1+2+3+....+n>=500的最小n及总和值.
public class Test{ public static void main(String args[]){ int i=0, sum=0; while(sum500){ sum+=i; i++; } System.out.println("sum="+sum+", n="+(i-1)); } }
求用java写一个1!+2!+……+20!的程序
你那个结果是错误的,超出int范围的,修改s t为long才正确; n >0多余。。。
public class test5 {
public static void main(String[] args) {
long s = 0L;
long t = 1L;
for (int n = 1; n = 20; n++) {
t = t * n;
s = s + t;
}
System.out.println("1!+2!+……+20!=" + s);
}
}
求一个用java编写的1到100内的素数,并且每行输出5个素数
public class Test {
public static void main(String[] args) {
int i, count = 0;
for(i=2; i=100; i++){
if(isPrimeNumber(i) == true){
count++;
System.out.printf("%6d", i);
if(count%5 == 0){
System.out.println();
}
}
}
//判断一个数是否是素数,若是,返回true,否则返回false
public static boolean isPrimeNumber(int num){
int k = (int) Math.sqrt(num);
if(num == 2){
return true;
for(int i=2; i=k; i++)
if(num%i == 0)
return false;
return true;
}
}
扩展:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,
是素数或者不是素数。
如果
为素数,则
要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。
求用JAVA书写满足1!+2!+3!+…n!
class JieCheng
{
public static void main(String[] args)
{
int sum =0; //用来记录结果
int y = 0; //用来记录次数
while(sum9999)
{
int a =1; //用来记录内循环的结果
y++;
for(int x=1;x=y;x++)
{
a = a * x;
}
sum +=a;
}
/*
因为程序的运行后会多算一次
所以要减去多算的一次
*/
int temp = 1;
for (int x=1; x=y; x++)
{
temp *=x;
}
System.out.println(y-1);
System.out.println(sum-temp);
}
}
楼主写的程序看不懂,不知道怎么改。看楼主应该是个java的初学者,我也是的哟。
其实最好写义一个方法。参数就是次数。返回的就是阶乘的值。这样用起来比较方便。。
用JAVA编写一个求1!+2!+3!+.....+10!的程序
用java编程写程序求1!+2!+....10!,只需用两个循环层,第一个循环是阶乘值相加,第二个循环是获取阶乘值,如下:
public class testd {
public static void main(string[] args){
//1!+2!+3!+···+10!就是1到10阶乘值的和
int sum=0;
//循环10次
for(int x=1;x=10;x++){
//阶乘初始值设置为1
int jiecheng=1;
//循环x次
for(int y=1;y=x;y++){
//阶乘上一个值和当前y值相乘重新赋值给阶乘
jiecheng=y*jiecheng;
}
//各个阶乘值相加
sum+=jiecheng;
}
//1~10阶乘值求和
system.out.println("1!+2!+3!+···+10!="+sum);
}
}
结果:
1!+2!+3!+···+10!=4037913