❶ 求"求素數的c語言程序"
#include <stdio.h>
int main()
{
int a=0;
int num=0;
int i;
printf("輸入一個整數:");
scanf("%d",&num);
for(i=2;i<num;i++){
if(num%i==0){
a++;
}
}
if(a==0){
printf("%d是素數。 ", num);
}else{
printf("%d不是素數。 ", num);
}
return 0;
}
(1)c語言質數程序擴展閱讀:
質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
基本演算法:若 k%m==0 則說明 k 不是素數。
判斷整數n是否為素數——採用枚舉法求解。
採用枚舉演算法解題的基本思路:
(1)確定枚舉對象、枚舉范圍和判定條件;
(2)枚舉可能的解,驗證是否是問題的解。
枚舉演算法的一般結構:while循環。
參考資料來源:網路-枚舉法
❷ 用C語言編寫求質數的程序
//我分別寫出了求素數和判斷素數的程序
/*
//判斷一個數是否為素數
#include<stdio.h>
#include<math.h>
int
isprime(int);
void
main()
{
int
inumber;
printf("請輸入一個非負整數:
");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素數!\
",inumber);
else
printf("%d不是素數!\
",inumber);
}
int
isprime(int
a)
{
int
i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return
0;
return
1;
}
*/
/*****************************************************/
//求某個正整數以內的素數
#include"stdio.h"
#include"math.h"
int
main(void)
{
int
count,i,m,n,num;
printf("請輸入所求范圍(正整數):
");
scanf("%d",&num);
count=0;//count記錄素數的個數
printf("%d以內的素數為:\
",num);
for(m=2;m<=num;m++)
{
n=sqrt(m);
for(i=2;i<=n;i++)
{
if(m%i==0)
break;
}
if(i>n)//如果m是素數
{
printf("%6d",m);
count++;
if(count%10==0)//count為10的倍數時換行
printf("\
");
}
}
printf("\
");
return
0;
}
❸ 關於c語言1-100的質數的程序不懂
循環的判斷是從2一直到不超過a的平方根的最大整數m.
比如說要檢查67的話,那麼循環就是從2到8(因為67的平方根是8.xx).
實際上從2一直檢查到67也可以,但是到平方根m就夠用了,
因為假如說存在一個整數因子x>m,使得a可以被x整除的話,那麼其結果a/x一定小於m,
在循環沒有進行到m之前實際上就已經被檢查出來了,呵呵.
希望有用,謝謝採納 ^_^
❹ 用C語言編寫一個程序,輸出1到100中的質數
#include<stdio.h>
#inlcude<math.h>
voidmain(){
intm,k;
puts("pleaseinputthenumber:");
scanf_s("%d",&m);
printf(":");
for(intj=1;j<=m;j++){
k=sqrt(j);
for(inti=2;i<=k+1;i++){
if(j%i==0){
break;
}
if(i==k+1){
printf("%d",j);
}
}
}
}
輸入值是100就可以求100以下的質數,為了你方便我沒有把數字寫死。
❺ c語言判斷是不是素數的程序
1、首先打開CodeBlocks,創建一個新項目。
❻ 用C語言編1到100之間的素數程序
程序及解釋如下:
首先判斷素數的演算法:用一個數分別去除以2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
則有如下程序
{ int m,k,i;
for(m=1;m<=100;m=m+2) //m=m+2,因為偶數都不是素數,不用考慮,所以每次m+2.
{ k=sqrt(m) //先求這個數的平方跟
for(i=2;i<=k;i++) //然後用i(從2到k,即m的平方跟)去除m,
if(m%i==0) break; //如果能被整除, 則不是素數,break
if(i>=k+1) pritnf("%d",m); //如果i>k+1,則說明沒有數能整除m.則m是素數
}
}
(6)c語言質數程序擴展閱讀:
素數被利用在密碼學上,所謂的公鑰就是將想要傳遞的信息在編碼時加入質數,編碼之後傳送給收信人,任何人收到此信息後,若沒有此收信人所擁有的密鑰,則解密的過程中(實為尋找素數的過程),將會因為找質數的過程(分解質因數)過久,使即使取得信息也會無意義。
在汽車變速箱齒輪的設計上,相鄰的兩個大小齒輪齒數設計成質數,以增加兩齒輪內兩個相同的齒相遇嚙合次數的最小公倍數,可增強耐用度減少故障。
在害蟲的生物生長周期與殺蟲劑使用之間的關繫上,殺蟲劑的質數次數的使用也得到了證明。實驗表明,質數次數地使用殺蟲劑是最合理的:都是使用在害蟲繁殖的高潮期,而且害蟲很難產生抗葯性。
以質數形式無規律變化的導彈和魚雷可以使敵人不易攔截。
多數生物的生命周期也是質數(單位為年),這樣可以最大程度地減少碰見天敵的機會。
參考資料:網路 素數
❼ 用C語言產生質數的程序怎麼優化
對於第二個:
「無論中間結果如何,總是要逐個用p除以2到p-1之間的數。」
其實用p除以2到p的平方根(sqtr(p))之間的數就可以了」
❽ 用c語言編寫一個程序,判斷輸入的數是否是素數(質數)。
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,n,flag;
int num;
/* 判斷輸入的數是否是素數 */
printf("請輸入一個正整數:");
scanf("%d", &num);
for(i=2,flag=1; i<=(int)sqrt(num);i++)
{
if(num % i ==0)
{
flag=0;
break;
}
}
if(flag==1)
printf("%d 是一個素數。\n\n", num);
else
printf("%d 不是一個素數。\n\n", num);
/* 列出2~1000之間個位數是3或7的素數 */
printf("2~1000之間個位數是3或7的素數:\n");
for(i=2; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
printf("%d\t",i);
}
/* 輸出10個2~1000之間個位數是3或7的素數 */
printf("\n\n2~1000之間個位數是3或7的素數:\n");
for(i=2,n=0; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
{
n++;
if(n<=10)
printf("%d\t",i);
}
if(n>10)
break;
}
return 0;
}
❾ 求素數的C語言程序!
素數,也叫質數,就是指除了1和該數本身以外,不能被其他任何整數整除的正數。
#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=1;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%5d",m);n=n+1;❿ C語言如何實現質數輸出
通過除以小於被除數的所有數
a%d==0 則count『++;
判斷如果count==0,printf(「%d」,a);