本文目錄一覽:
- 1、用JAVA編寫一個求1到N所有素數的程序
- 2、=500的最小n及總和值.’ title=’使用java編寫一個程序,求滿足條件1+2+3+….+n>=500的最小n及總和值.’>使用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你看著改變就行了,你看看能不能解決你的問題
=500的最小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
原創文章,作者:NNVQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147595.html