1樓:網友
#include
#include
void sprint(int &)
int main()
int num=0;
cin>>num;
while(num)
sprint(num);
cout<>num;
return 0;
void sprint(int &n)
int i=1,j=0,judg=1;
for(i=2;i<=n;judg=1,i++)你的問題就出在這裡,judg被賦值為0後,下次徇環就要再重新賦值為1,還有,這裡的for 徇環初值要從2開始,因為1不是素數,也不是合數。*/
for(j=2;j<=(int)sqrt(i);j++)這裡的型別轉換應該把括號加在"int"上,而不是後面部分喲。
if(i%j==0 &&i!=j)
judg=0;
if(judg)
cout希望我們以後可以一起討論c++
找到乙個比這個整數大的最小素數用c++
2樓:
除了1和自身之外不能整除其它數, 稱之為素數。 最小的素數是2. 沒有最大的素數。
關於素數的演算法, 一般有2種。第1種, 給出乙個數n(n >=2), 判斷n是不是素數第2種, 給出乙個數n(n >=2), 把[2, n]的所有素數拿出來判斷乙個數n是否是素數, 最簡單粗暴的方法就是把n分別與i(i的範圍是[2, n-1])求餘稍微想一下我們就能知道, 只需判斷n與[2, n/2]求餘即可再高階點利用數學上的證明, 可以得出, 只需判斷n與[2, sqrt(n)]求餘即可。
用c++判斷乙個數是否是素數
3樓:思念是一種醉過
方法如下:
首先先定義乙個函式用於判斷乙個數是否是素數,接著主函式接受鍵盤輸入,並呼叫該函式判斷輸入的數是否是素數。
1、補充:素數就是隻能被1和自身整除的數。故判斷n是否是素數,可以用n依次除以n-1,n-2……2,如果能整除則不是素數,否則是素數。
2、示例:#include
#include
using namespace std;
int isfun(int n)
return 1;
int main( )
4樓:匿名使用者
# include
int main(void)
if (k)//如果j賦給了k,那麼k不等於0,為真,輸出不是素數;如果j沒有賦給k,那麼k等於0,為假,輸出是素數。
printf("%d不是素數!", i);
elseprintf("%d是素數!", i);
return 0;}
5樓:
//#include ""//vc++加上這一行。
#include ""
using namespace std;
bool prime(int n)
呼叫這個函式就可以了……
6樓:
設定乙個迴圈,用乙個2至這個數的平方根(取較大整數)數去除這個數,不存在任意一數可整除,則這個數就是素數,否則不是。如:
for(i=2;i*i<=n;i++)
if(n%i==0)
break;
if(i*i>=n)
printf("%d是素數",n);
elseprintf("%d不是素數",n);
7樓:文庫精選
內容來自使用者:kettykettykett判斷乙個數是否為素數。
#include
#include
void main( )
求100-200間的所有素數;
#include
#include
void main( )
if(n%10= =0)
printf(「」
printf(「」
函式:#include
void disp(x)
int x;
main( )
8樓:春雨_潤物
素數是隻能被1和它本身整除的數。所以可以用乙個for迴圈,用乙個數從2開始一直除到比它小1的數,如果沒有乙個能被整除,這個數就是素數。
return 是函式的返回值,就是說跳出乙個函式時整個函式被乙個值代替在原位置。返回什麼要看它的執**況。
這裡的意思是說如果是素數就返回1,如果不是素數就返回乙個0。
9樓:網友
依照你的迴圈for(i=2;i<=k;i++)注意,後面有個i++,所以如果該數是素數,那麼迴圈到i=sqrt(m)時,m仍不會被整除,因此i會自增1個單位,由此有i>k,此時就可以斷定m是素數了。
10樓:富鵬同
你利用的是這個迴圈:讓乙個待檢測的數依次除以2,3,4……一直到該數的平方根,如果能整除就說明該數不是素數。
依照你的迴圈for(i=2;i<=k;i++)注意,後面有個i++,所以如果該數是素數,那麼迴圈到i=sqrt(m)時,m仍不會被整除,因此i會自增1個單位,由此有i>k,此時就可以斷定m是素數了。
o(∩_o
11樓:藍兔小童鞋
#include""
#include""
main()
判斷是否為素數,只需要判斷它是否只能被1和它本身整除。
C語言問題,乙個C語言問題
錯誤是 d 了 因為陣列名s,代表字串陣列的首位址,s指向的位址就是s 0 的位址。gets s 正確則gets s 0 也是正確的,所以 a,c 正確。而scanf s s 1 實際上只是不從s 0 開始,而是從s 1 開始賦值而已,既然只輸給它5個字元,所以從s 1 開始賦值也不會過界,則b是正...
C語言問題,乙個C語言問題
include void main printf 它們的和為 d sum include int main if i 3 0 return 0 include main printf n printf sum d sum system pause include int main printf su...
c語言的問題,C語言的一個問題
這是中國mooc上的題目吧,你的程式其實是正確的。知道為何 說 格式錯誤 了嗎?include int main 上面這個程式經驗證是可通過的。include int main 而原先我的這個程式卻不行!0分!覺得明明是同一套程式吧,他喵的我發現運算子與變數之間要空格,評分系統才認你的程式,等號兩邊...