❶ 求判斷一個數是否為素數的最簡單演算法
追求效率的話 最高的是 Miller_Rabin 演算法 最好有一定的數論知識再去看
另一個簡單方法是 可以O(n) 求出素數 然後再判斷就行了 多個素數判斷時效率較高
❷ 判斷一個數a是否為素數的演算法。
int prime(int n)
{int i;
for (i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
若返回0則不是素數;
若返回1則是素數
❸ 「判斷n是否為質數」的演算法
這里的i>(n-1)如果是成立,則說明在2-(n-1)之間沒有可以整除n的,也就說明n是質數,而如果不是,則i還未到n-1,不知道在i到n-1之間會不會有可以整除n的數,因此要返回步驟3繼續判斷i+1。如果還不理解可以追問。
❹ 判斷是否為質數的快速演算法
#include<stdio.h>
#include<stdlib.h>
#define SIZE 1000000
char table[SIZE];
int prime[168]=
{
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71, 73, 79, 83, 89, 97,101,103,107,109,113,
127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,
199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,
283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,
383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,
467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,
577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,
661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,
769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,
877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,
983,991,997
};
int init()
{
int i,j;
memset(table,1,SIZE);
table[0]=table[1]=0;
for(i=0;i<168;++i)
{
for(j=prime[i]*2;j<SIZE;j+=prime[i])
{
table[j]=0;
}
}
}
int main()
{
int i;
init();
while(scanf("%d",&i)!=EOF)
{
printf(table[i]?"yes":"no");
}
return 0;
}
❺ 請寫出判斷n(n>2)是否為質數的演算法.
演算法如下: 第一步,給定大於2的整數n. 第二步,令i=2. 第三步,用i除n,得到余數r. 第四步,判斷「r=0」是否成立.若是,則n不是質數,結束演算法;否則,將i的值增加1,仍用i表示. 第五步,判斷「i>(n-1)」是否成立.若是,則n是質數,結束演算法;否則,返回第三步. 分析:對於任意的整數n(n>2),若用i表示2—(n-1)中的任意整數,則「判斷n是否為質數」的演算法包含下面的重復操作:用i除n,得到余數r.判斷余數r是否為0,若是,則不是質數;否則,將i的值增加1,再執行同樣的操作. 這個操作一直要進行到i的值等於(n-1)為止.
❻ 請編寫一個判別給定二叉樹是否為二叉排序樹的演算法
1、首先打開VC++6.0。
7、運行得到結果。
❼ 設計一個判斷某年是否為閏年的演算法
#include <stdio.h>
void main()
{
int year;
printf("輸入一個年份:");
scanf("%d",&year);
if((year%4==0 && year%100!=0) || (year%400==0))
{
printf("%d是閏年",year);
}
else
{
printf("%d不是閏年",year);
}
❽ 大學計算機導論如何判斷計算過程是否為一個演算法
太高深了。沒研究過
❾ 判斷一個數是否為素數的演算法
找質數的方法:寫出這個數的因數。再判斷這個數是質數還是合數。
1、一個數除了1和本身,不再有別的約數,這樣的數叫做質數或者素數。例如:2,3,5,7,11,13,17,19,23,29等等。
2、一個數,除了1和本身,還的別的因數,這樣的數叫做合數。例如4、8、8、9等等。例如:2的所有因數是1和2兩個,所以2是質數。例如6的所有因數是:1,2,3,6。一共是4個,所以6是合數。
找因12的因數:
1×12=12 2×6=12 3×4=12 所以12的因數有:1,2,3,4,6,12。共6個。
找因數的方法可以把這個數分成兩個因數相乘的積。從一開始比較容易找,寫的時候最好能從小到大寫出來。重復的只能寫一個。例如9的因數:1×9=9 3×3=9 9的因數是:1,3,9共3個。(重復的3隻能寫一個。)
❿ 哪個演算法是判斷一個數是否為素數的最簡單演算法
Miller_Rabin 演算法啊。在n個數值裡面隨機選擇一個數字,如果說這個數字能夠整除2到sqrt(n)的話,那這個數就是素數,反之則不是