(注:暫時先記錄這些問題,後期再持續更新)
1,判斷正整數m是否為素數
int i,m;
printf("Enter a number:");
scanf("%d",&m);
for(i=2;i<=m/2;i++)
if(m%i == 0)
break; //若m能被某個i整除,則m不是素數,提前結束循環
if(i > m/2&&m != 1) //若循環正常結束,說明m不能被任何一個i整除
printf("%d is a prime number!\n",m);
else
printf("No!\n");
return 0;

2,使用嵌套循環求100以内的全部素數
int count,i,m,n;
count = 0; //記錄素數的個數,用于控制輸出格式
for(m=2;m<=100;m++){
n = sqrt(m);
for(i=2;i<=n;i++)
if(m%i == 0)
break;
if(i>n){ //如果m是素數
printf("%6d",m); //輸出m
count++; //累加已經輸出的素數個數
if(count%10 == 0) //如果count是10的倍數,換行
printf("\n");
}
}
printf("\n");
return 0;
3,使用函數求100以内的全部素數
#include<stdio.h>
#include<math.h>
int main(void)
{
int count,m;
int prime(int m); //函數聲明
count = 0; //記錄素數的個數,用于控制輸出格式
for(m=2;m<=100;m++){
if(prime(m) != 0){ //調用prime(m)判斷m是否為素數
printf("%6d",m); //輸出m
count++; //累加已經輸出的素數個數
if(count%10 == 0) //如果count是10的倍數,換行
printf("\n");
}
}
printf("\n");
}
/* 定義判斷素數的函數,如果m是素數則傳回1,否則傳回0 */
int prime(int m)
{
int i,n;
if(m == 1) return 0; //1不是素數,傳回0
n = sqrt(m);
for(i=2;i<=n;i++){
if(m%i == 0){ //如果m不是素數
return 0; //傳回0
}
return 1;
}
}