#include "stdio.h"
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、濟(jì)源ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的濟(jì)源網(wǎng)站制作公司
int prime(int n){//素?cái)?shù)
int i;
for(i=3;i*i=n;i+=2)
duif(!(n%i))
return 0;
return 1;
}
int main(int argc,char *argv[]){
int n,k;
for(k=0,n=3;k1000;n+=2)
if(prime(n) prime(n+2))
printf(++k%7 ? "%6d/%-6d " : "%6d/%-6d\n",n,n+2);
if(k%7)
printf("\n");
return 0;
}
當(dāng)i==3時,(temp=(int)(sqrt(i)))==1
因?yàn)閠emp==1了,所以for(int j=2;j=temp;++j)的循環(huán)就直接“跳過”了,也就不會執(zhí)行循環(huán)體內(nèi)的程序解決辦法是將for(int j=2;……)改為for(int j=1;……)將循環(huán)體內(nèi)的if(i%j==0)改為if(j!=1 i%j==0)更簡單的辦法是不利用平方根求素?cái)?shù)的捷徑,而是直接對小于i的所有整數(shù)進(jìn)行判斷。
擴(kuò)展資料:
素?cái)?shù)定理說明了素?cái)?shù)在趨于無窮大時變得稀少的趨勢。而孿生素?cái)?shù),與素?cái)?shù)一樣,也有相同的趨勢,并且這種趨勢比素?cái)?shù)更為明顯。
由于孿生素?cái)?shù)猜想的高知名度以及它與哥德巴赫猜想的聯(lián)系,因此不斷有學(xué)術(shù)共同體外的數(shù)學(xué)愛好者試圖證明它。有些人聲稱已經(jīng)證明了孿生素?cái)?shù)猜想。然而,尚未出現(xiàn)能夠通過專業(yè)數(shù)學(xué)工作者審視的證明。
參考資料來源:百度百科-孿生素?cái)?shù)
int j = 0;//用于計(jì)算孿生素?cái)?shù)的個數(shù)for(int i=m-2;i0;i--){ if(isPrime(i) isPrime(i+2)) { System.out.println(i); j++; if(j == 2) break; }}
import?java.util.Scanner;
public?class?Test?{
public?static?void?main(String?args[])?{
Scanner?in?=?new?Scanner(System.in);
int?m?=?in.nextInt();
int?b?=?m,?a,?i;
for?(i=m;i5;i--)?{
if?(isSuShu(i))?{
b?=?i;
break;
}
}
for?(int?j=i;j5;j--)?{
if?(isSuShu(j))?{
a?=?j;
if?(b?-?a?==?2)?{
System.out.println(a?+?","?+?b);
return;
}?else?{
b?=?j;
}
}
}
}
private?static?boolean?isSuShu(int?a)?{
for?(int?i=2;i=Math.sqrt(a);i++)?{
if?(a%i==0)?{
return?false;
}
}
return?true;
}
}
思路:
1.定義一個“函數(shù)prime”,判斷該數(shù)是否是素?cái)?shù);
2.主程序:
1)輸出(2,3)
2)從3~999的所有奇數(shù)循環(huán);
3)如果這個數(shù)是素?cái)?shù),則判斷這個數(shù)+2是不是素?cái)?shù),如果是,則輸出(這個數(shù),這個數(shù)+2)。
程序LZ可以自己試試看。
這個定義的函數(shù)prime的思路是:
1.要判斷一個數(shù)?n?是否是素?cái)?shù),可以從2~trunc(sqrt(n))循環(huán),再看循環(huán)變量是否能整除?n?,如果都不能整除,則?n?是素?cái)?shù);
2.過程如下:
function?prime(n:longint):boolean;
var?i:longint;
begin
prime:=true;
for?i:=2?to?trunc(sqrt(n))?do
if?n?mod?i=0?then
begin
prime:=false;
exit;
end;
end;
這段代碼不優(yōu)化,不過由于是1000以內(nèi),還可以。
經(jīng)過上機(jī)調(diào)試,測試通過,源代碼見附件。
希望對你有幫助。
樓主的兩個for循環(huán)用的不對,另外整個流程也是有問題的。改正的代碼如下:
#include?stdio.h
#include?math.h
int?main()
{
int?a,b;??/*?輸入的兩個數(shù)據(jù)范圍?*/
int?i,j,k;
int?num=0,?s;??/*?素?cái)?shù)個數(shù),?素?cái)?shù)標(biāo)志?*/
scanf(?"%d?%d",?a,b?);
for(?i=a;i+2=b;i++?)
{
s?=?1;??/*?先假設(shè)i是素?cái)?shù)?*/
k?=?sqrt(i);
for(?j=2;j=k;j++?)
{
if(?i%j?==?0?)
{
s?=?0;??/*?i不是素?cái)?shù)?*/
break;
}
}
if(?s?)
{
k?=?sqrt(?i+2?);
for(?j=2;j=k;j++?)
{
if(?(i+2)%j?==?0?)
{
s?=?0;??/*?i+2不是素?cái)?shù)?*/
break;
}
}
if(?s?)
{
++num;??/*?i+2是素?cái)?shù)?*/
printf(?"第%d個孿生素?cái)?shù)[%d,%d]\n",?num,?i,?i+2?);
}
}
}
return?0;
}
二、用GCC編譯測試結(jié)果:
代碼如下:
public?class?App?{
/***
?*?判斷?n?是否素?cái)?shù)
?*?@param?n
?*?@return
?*/
static?boolean?isPrime(int?n)?{
for?(int?i?=?2;?i??n;?i++)?{
if?(n?%?i?==?0)?{
return?false;
}
}
return?true;
}
public?static?void?main(String[]?args)?{
for?(int?i?=?2;?i??100;?i++)?{
if?(isPrime(i)??isPrime(i?+?2))?{
System.out.println(i?+?","?+?(i?+?2));
}
}
}
}
運(yùn)行結(jié)果:
網(wǎng)站名稱:孿生素?cái)?shù)java代碼,孿生素?cái)?shù)程序
網(wǎng)頁路徑:http://chinadenli.net/article18/hessdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、電子商務(wù)、微信小程序、搜索引擎優(yōu)化、面包屑導(dǎo)航、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)