C 素數問題,初學者,完全懵了,求高手解答!!

時間 2023-04-14 04:35:03

1樓:九月孤城

#include

#include

#include

#include

using namespace std;

#define eps 1e-6

bool isprimer[1001];

int res[1001];

void init()

isprimer[i]=is;

int main()

printf("%d",num);

for(int i=0;i//pss:素數初始化有更高效的辦法。。。素數篩選法是其中一種。。更好的也有。。

2樓:匿名使用者

#include

using namespace std;

int judesushu(int);/判斷是否是素數的函式,是的話返回1,不是的話返回0

int main()

int judesushu(int n)

return 1;

3樓:匿名使用者

#include

#include

int ss(int n) /檢查n是否為素數,如果是則返回1,否則返回0*/

int main(void)

//運**況:

請按任意鍵繼續。 .

求解答這道c++問題(完全素數)

4樓:風若遠去何人留

對於任意的完全素數 其去掉最後一位肯定也是完全素數(定義使然)

所以每個n位(n>1) 的完全素數 必然是由一個n-1位的完全素數派生出來的。

所以只要知道k位上的所有完全素數,那麼推導下一層就簡單了,不需要所有數字都判斷一次。

作為一個素數 在n>1情況下(至少兩位數) 其個位數只能是 1 3 7 9中的一個(偶數自然不是質數,而是5的話 可以被5整除 也不是質數)

這樣程式可以簡化為。

#include

#include

using namespace std;

bool isprime(int v)

void get(int **list, int n)

else;int v;

n --穩妥的做法是上一層總數*4 +1

實際執行可以發現 最多隻有16個(4位的時候)

所以這裡可以固定為17

i = list[n-1][0] *4 + 1;

list[n] =new int[i];

*/list[n] =new int[17];

list[n][0] =0;

for(i = 1; i <=list[n-1][0]; i ++

}int main()

{int **list, i, n;

list = new int *[8];

for(i = 1; i < 9; i ++

get(list, i);

cin >>n;

n --for(i = 1; i <=list[n][0]; i ++

cout <

用c語言求素數

5樓:yd_淹死的魚

首先,一個素數不能被除1和它本身的整數整除,一般求判斷a是素數,只需從2,..a-1都不能整除a,則a就是素數了;

然而,當整數》a/2(不含a)是不可能整除a(因為商已經小於2了);

所以,判斷從2,..a/2的數都不能整除a,則a就是素數了。

例如:for(i = 2; i <=a/2; i++)

6樓:匿名使用者

你想下假如對8取餘8/2==4,5以後的數字能整除8嗎,為了提高效率,只要到4就行了,其實你理解錯了,哪是這一句是判斷方法啊,

7樓:生產大隊副隊長

就是如果從2到a/2之間的數都不能被a整除,那麼a就是素數。

c++求素數

8樓:匿名使用者

第二個空應該填 i==j;

因為j那個迴圈中 每次迴圈都是判斷先執行 判斷j<=i-1;然後執行i%j==0判斷 如果是正確 則從迴圈結束 執行下一個語句 也就是判斷 第二個空格里的內容 ;如果是錯誤 則j++繼續判斷j<=i-1繼續迴圈;

所以說j迴圈結束的情況有兩種 一種是判斷 i%j==0這就不是素數 不需要輸出(此時的j還有一種情況是 判斷到最後一個數 判斷 i%j==0仍是錯誤 結束迴圈 這就是素數 要輸出(素數的話判定一直會是錯誤,也就是說最後一次迴圈應該是 j=i-1,判斷i%j==0錯誤 j++之後j=i 判斷j<=i-1錯誤 j結束迴圈 迴圈結果是j=i )

而區分這兩種情況就得 在第二個空裡填 i==j

9樓:20夏天

是i==j

你自己在去敲一下,看結果。

0~30之間的素數有哪些!!!

C 初學者的問題,C 初學者問題。

首先要告訴你一個概念是 所有的c 程式都是從main函式開始執行的 include int show int main 程式進入main函式int main 程式從main 函式開始執行 第一段 cout 只是單純輸出返回值1,hello world 不會輸出來第二段 show 呼叫函式,輸出 he...

我是C語言初學者,有問題請教高手

這很正常了,因為這些程式是在dos視窗中執行的,執行完之後就會退出dos視窗,如果你先開啟一個dos視窗,然後再輸入那個檔名執行的話,就不會這樣了,如果你覺得這樣做太麻煩,那你就在程式的後面加個暫停語句getch 或者system pause 就可以了。一定要加在 return 0 這個語句前,這樣...

初學者求一道C語言的答案

心流風暴 include stdio.h void main int i,j,sum 0 for i 0 i sum a i i for j 0 j sum sum a rl j 1 j if rl 2 1 sum a rl 2 rl 2 printf 矩陣對角線之和 d n sum 飄逸大陸 in...