日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

pat数素数 20 c语言,PAT乙级C语言1013 数素数

發(fā)布時(shí)間:2025/3/21 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pat数素数 20 c语言,PAT乙级C语言1013 数素数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1013 數(shù)素?cái)?shù) (20 分)

令 P?i表示第 i 個(gè)素?cái)?shù)。現(xiàn)任給兩個(gè)正整數(shù) M≤N≤10的4次方,請(qǐng)輸出 PM到 PN的所有素?cái)?shù)。

輸入格式:

輸入在一行中給出 M 和 N,其間以空格分隔。

輸出格式:

輸出從 PM到 PN的所有素?cái)?shù),每 10 個(gè)數(shù)字占 1 行,其間以空格分隔,但行末不得有多余空格。

輸入樣例:

5 27

輸出樣例:

11 13 17 19 23 29 31 37 41 43

47 53 59 61 67 71 73 79 83 89

97 101 103

#include

#include

int main()

{

int min,max;//輸入的最小最大值

int k,b,j;

int a[10000];//最開始定義的時(shí)候數(shù)組大小只設(shè)為1000,有個(gè)測試點(diǎn)過不去

//設(shè)這個(gè)數(shù)組是為了存放素?cái)?shù)

a[0] = 2;//數(shù)組中第一個(gè)存放的素?cái)?shù)是2

scanf("%d %d",&min,&max);

b = 1;

for(int i = 3 ;i <= 1000000 ;i++) //之前設(shè)置i的取值過小,測試點(diǎn)沒過去

{

if( i % 2 == 0)

continue;

else

{

k=(int)sqrt( (double)i );

for(j = 2;j <= k;j++)

if( i % j ==0)

break;

if(j > k)

{

a[b++] = i;

}

if(b > max)

break;

}

}

int n = 1;

for(int i = min - 1;i

{

if(n % 10 == 1)

printf("%d",a[i]);

else

printf(" %d",a[i]);

if(n % 10 ==0)

printf("\n");

}

return 0;

}

C語言判斷素?cái)?shù)(from C語言中文網(wǎng))

1):因此判斷一個(gè)整數(shù)m是否是素?cái)?shù),只需把 m 被 2 ~ m-1 之間的每一個(gè)整數(shù)去除,如果都不能被整除,那么 m 就是一個(gè)素?cái)?shù)。

2):另外判斷方法還可以簡化。m 不必被 2 ~ m-1 之間的每一個(gè)整數(shù)去除,只需被 2 ~ 之間的每一個(gè)整數(shù)去除就可以了。如果 m 不能被 2 ~ 間任一整數(shù)整除,m 必定是素?cái)?shù)。例如判別 17 是是否為素?cái)?shù),只需使 17 被 2~4 之間的每一個(gè)整數(shù)去除,由于都不能整除,可以判定 17 是素?cái)?shù)。

1所對(duì)應(yīng)的代碼

#include

int main(){

int a=0; // 素?cái)?shù)的個(gè)數(shù)

int num=0; // 輸入的整數(shù)

printf("輸入一個(gè)整數(shù):");

scanf("%d",&num);

for(int i=2;i

if(num%i==0){

a++; // 素?cái)?shù)個(gè)數(shù)加1

}

}

if(a==0){

printf("%d是素?cái)?shù)。\n", num);

}else{

printf("%d不是素?cái)?shù)。\n", num);

}

return 0;

}

2所對(duì)應(yīng)的代碼

#include

#include

void main(){

int m; // 輸入的整數(shù)

int i; // 循環(huán)次數(shù)

int k; // m 的平方根

printf("輸入一個(gè)整數(shù):");

scanf("%d",&m);

// 求平方根,注意sqrt()的參數(shù)為 double 類型,這里要強(qiáng)制轉(zhuǎn)換m的類型

k=(int)sqrt( (double)m );

for(i=2;i<=k;i++)

if(m%i==0)

break;

// 如果完成所有循環(huán),那么m為素?cái)?shù)

// 注意最后一次循環(huán),會(huì)執(zhí)行i++,此時(shí) i=k+1,所以有i>k

if(i>k)

printf("%d是素?cái)?shù)。\n",m);

else

printf("%d不是素?cái)?shù)。\n",m);

}

C語言中每輸出幾個(gè)換行(from 百度知道)

#include

#include

int main()

{

int n,i=1; // i 從 1 開始,i=0 的時(shí)候,第一次就滿足換行了//i為計(jì)數(shù)的

for(n=100;n<=200;n++,i++)

{

if(n%3!=0)continue;

printf("%4d",n);

if(i%5==0) // 取 5 的余數(shù)

printf("\n");

}

return 0;

}

總結(jié)

以上是生活随笔為你收集整理的pat数素数 20 c语言,PAT乙级C语言1013 数素数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。