pat数素数 20 c语言,PAT乙级C语言1013 数素数
1013 數素數 (20 分)
令 P?i表示第 i 個素數。現任給兩個正整數 M≤N≤10的4次方,請輸出 PM到 PN的所有素數。
輸入格式:
輸入在一行中給出 M 和 N,其間以空格分隔。
輸出格式:
輸出從 PM到 PN的所有素數,每 10 個數字占 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];//最開始定義的時候數組大小只設為1000,有個測試點過不去
//設這個數組是為了存放素數
a[0] = 2;//數組中第一個存放的素數是2
scanf("%d %d",&min,&max);
b = 1;
for(int i = 3 ;i <= 1000000 ;i++) //之前設置i的取值過小,測試點沒過去
{
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語言判斷素數(from C語言中文網)
1):因此判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那么 m 就是一個素數。
2):另外判斷方法還可以簡化。m 不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~ 之間的每一個整數去除就可以了。如果 m 不能被 2 ~ 間任一整數整除,m 必定是素數。例如判別 17 是是否為素數,只需使 17 被 2~4 之間的每一個整數去除,由于都不能整除,可以判定 17 是素數。
1所對應的代碼
#include
int main(){
int a=0; // 素數的個數
int num=0; // 輸入的整數
printf("輸入一個整數:");
scanf("%d",&num);
for(int i=2;i
if(num%i==0){
a++; // 素數個數加1
}
}
if(a==0){
printf("%d是素數。\n", num);
}else{
printf("%d不是素數。\n", num);
}
return 0;
}
2所對應的代碼
#include
#include
void main(){
int m; // 輸入的整數
int i; // 循環次數
int k; // m 的平方根
printf("輸入一個整數:");
scanf("%d",&m);
// 求平方根,注意sqrt()的參數為 double 類型,這里要強制轉換m的類型
k=(int)sqrt( (double)m );
for(i=2;i<=k;i++)
if(m%i==0)
break;
// 如果完成所有循環,那么m為素數
// 注意最后一次循環,會執行i++,此時 i=k+1,所以有i>k
if(i>k)
printf("%d是素數。\n",m);
else
printf("%d不是素數。\n",m);
}
C語言中每輸出幾個換行(from 百度知道)
#include
#include
int main()
{
int n,i=1; // i 從 1 開始,i=0 的時候,第一次就滿足換行了//i為計數的
for(n=100;n<=200;n++,i++)
{
if(n%3!=0)continue;
printf("%4d",n);
if(i%5==0) // 取 5 的余數
printf("\n");
}
return 0;
}
總結
以上是生活随笔為你收集整理的pat数素数 20 c语言,PAT乙级C语言1013 数素数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言程序开发中连接是,C语言中等待so
- 下一篇: android水平滚动条,Android