本文目錄一覽:
- 1、C語言 質數 怎麼做啊
- 2、輸出100以內的質數,用c語言編寫
- 3、C語言的質數演算法求教!
- 4、C語言求素數數組
- 5、C語言如何實現質數輸出
- 6、C語言 素數 數組
C語言 質數 怎麼做啊
#includestdio.h
#includemath.h
int is_prime(int tar){//判斷是否為素數
int i = 2;
int end = sqrt((float)tar);
while(i = end){
if(tar % i == 0)
return 0;
i++;
}
return 1;
}
int main(){
int num;
scanf(“%d”, num);
if(is_prime(num)==1)
printf(“Y\n”);
else
printf(“N\n”);
return 0;
}
輸出100以內的質數,用c語言編寫
#includestdio.h
int main()
{
int i,j;
int count=0;
for(i=2;i100;i++)
{
for(j=2;j=i/2;j++)
if(i%j==0)//如果i能被j整除 就不是質數 退出循環
break;
if(ji/2)
{
count++;
printf(“%-3d”,i);
if(count%5==0)//當每一行有5個數時 換行
printf(“\n”);
}
}
return 0;
}
for(j=2;j=i/2;j++)中的 j=i/2是表示 從j=2開始遍歷到j=i/2 看看2~i/2中能否整除i
如果都不能 說明i是質數(也就是ji/2)
如果有1個及以上能整除i 說明i不是質數
for()
{
}
//for循環結束之後 j的值是大於i/2的 因為for循環的條件是:j=i/2
//因此 當ji/2時 for循環結束
if(ji/2)
這裡當且僅當2~i/2都不能整除i時 也就是ji/2 才說明i是質數
參考資料
輸出100以內的質數,用c語言如何編寫?.百度知道[引用時間2017-12-25]
C語言的質數演算法求教!
比如一個數n,比他小的質數有{2,3,5,7,11,13}。怎麼判斷n是否質數?
n只要除以{2,3,5,7,11,13}里的所有數,都除不盡,那麼n就也是質數了,對吧。
而實際上,這個序列可以縮小。n只要除以這個序列裡面,所有比根號下n小的質數,都除不盡,那麼n就是質數了。因為如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。
例如21,它可以除盡7,而它同樣可以除盡3。所以判斷21是否質數,只需要判斷21是否可以除盡2和3就可以了。5和7和11就不需要判斷了。
所以for(i=1;counter++,prime[i]*prime[i]=no;i++),就是說這個素數的平方達到了要判斷的no的時候就退出,也就是判斷所有比no的根號更小的素數。
C語言求素數數組
#include stdlib.h
#include stdio.h
void readwriteDat();
void num(int m, int k, int *xx)
{
int n=0,i,b;
while(m++)/*死循環*/
{
for(i=2;im;i++)
{
if(!(m%i))
{b=0;break;}
else b=1;
}
if(b) xx[n++]=m;/*if(n==k-1) break;
}
}
int main()
{
int m, n, xx[1000];
printf(“\nPlease enter two integers:”);
scanf(“%d%d”, m, n);
num(m, n, xx);
for (m=0; mn; m++)
printf(“%d “, xx[m]);
printf(“\n”);
readwriteDat();
system(“pause”);
return 0;
}
void readwriteDat()
{
int m, n, xx[1000], i;
FILE *rf, *wf;
rf = fopen(“in.dat”, “r”);
wf = fopen(“out.dat”, “w”);
for (i=0; i10; i++)
{
fscanf(rf, “%d %d”, m, n);
num(m, n, xx);
for (m=0; mn; m++)
fprintf(wf, “%d “, xx[m]);
fprintf(wf, “\n”);
}
fclose(rf);
fclose(wf);
}
求一個大於m且僅靠m的k個素數存入數組xx傳回,不知哪裡出錯,除了num函數,其他都是題目給的
C語言如何實現質數輸出
代碼如下:
/*
* 輸出 1~20 之間的質數
*/
#include stdio.h
#include math.h
//判斷一整數是否為質數
int isprime(int n)
{
int i;
int up;
int ret = 1;
up = sqrt(n);
for (i=2; i=up; i++) {
if (n%i==0) {
ret = 0;
break;
}
}
return ret;
}
//主函數
int main()
{
int n;
printf(“1~20 之間的質數有:”);
for (n=2; n20; n++) {
if (isprime(n))
printf(“%d “, n);
}
printf(“\n”);
return 0;
}
運行程序,輸出如下:
1~20 之間的質數有:2 3 5 7 11 13 17 19
C語言 素數 數組
if(i%j==0)下面的代碼用大括弧括起來,最後一個for語句中,
for(i=0;i=count;i++)改成for(i=0;icount;i++),代碼改為如下:
#include stdio.h
void main()
{
int m,i,k,j,a[100],*p=a,count=0;
printf(“Please input a number:”);
scanf(“%d”,m);
for(i=2;i=m;i++)
for(j=2;ji;j++)
{
if(i%j==0)
{
*p=i;
p++;
count++;
break;
}
}
for(i=0;icount;i++)
printf(“%d “,a[i]);
}
原創文章,作者:PLMYK,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329377.html