#includestdio.h
目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、網(wǎng)站運營、企業(yè)網(wǎng)站設計、泰來網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
#includemath.h
int fun(int n)
{ int i;
for(i=2;i=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
return 1;
}void main()
{
int n;
printf("請輸入一個數(shù):\n");
scanf("%d",n);
if(fun(n))
printf("該素數(shù)是:%d",n);
else
printf("該數(shù)不是是素數(shù):\n");
}
#include?stdio.h
#include?math.h
//判斷是否為素數(shù)的函數(shù)
int?isPrime(int?n)
{
int?i=2;
while(i=(int)sqrt(n))
{
if(n%i?==?0)
return?0;??//不是素數(shù),直接返回0
else
i++;
}
return?1;
}
int?main()
{
int?n,i;
printf("輸入一個正整數(shù):?");
scanf("%d",n);
for(i=2;i=n;i++)
{
if(isPrime(i))??//調(diào)用函數(shù),如果該數(shù)為素數(shù),則輸出
printf("%d?",i);
}
printf("\n");
return?0;
}
示例運行結果:
輸入一個正整數(shù): 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
#includestdio.h
#includemath.h
int??prime(int?a,int?b)//求出整數(shù)a-b范圍內(nèi)的所有素數(shù)
{
int?i=2,j,n;
for(j=a;j=b;j++)
{
n=sqrt(j)+1;?//j的平方數(shù)+1
i=2;
while(in)??
?? {
?? if(j%i==0) //整除,退出循環(huán)
break;
i++;
}
? if(i==n)?//非整除退出循環(huán),i肯定等于n
printf("%d?",j);? //j是素數(shù),輸出
}
}
int?main()?
{?
int?a,b;?
scanf("%d%d",a,b);?//輸入整數(shù)范圍a-b
prime(a,b);
return?0;
}
樓主的代碼看的真是讓我蛋疼,全局太多、函數(shù)定義和聲明參數(shù)都沒有類型、判斷是否素數(shù)居然返回double、printf用法錯誤...各種我就不說了,給你修改了一下,編譯運行成功,代碼如下:
#includestdio.h
bool prime(int x);
int main()
{
int m,n,count=0,i,sum=0;
scanf("%d",m);
scanf("%d",n);
for(i=m;i=n;i++){
if(prime(i))
{
count++;
sum=sum+i;
}
}
printf("count=%d,sum=%d\n",count,sum);
return 0;
}
bool prime(int x)
{
int a;
bool result = false;
for(a=2;a*a=x;a++)
{
if(x%a==0)
break;
}
if(a*ax)
result = true;
return result;
}
素數(shù):
質(zhì)數(shù)又稱素數(shù),有無限個。一個大于1的自然數(shù),除了1和它本身外,不能被其他自然數(shù)(質(zhì)數(shù))整除,換句話說就是該數(shù)除了1和它本身以外不再有其他的因數(shù);否則稱為合數(shù)。
根據(jù)算術基本定理,每一個比1大的整數(shù),要么本身是一個質(zhì)數(shù),要么可以寫成一系列質(zhì)數(shù)的乘積;而且如果不考慮這些質(zhì)數(shù)在乘積中的順序,那么寫出來的形式是唯一的。最小的質(zhì)數(shù)是2。
基本判斷思路:
在一般領域,對正整數(shù)n,如果用2到
之間的所有整數(shù)去除,均無法整除,則n為質(zhì)數(shù)。
Python 代碼:
def is_prime(n):
list_num = []
for i in range(2, n):
for num in range(2, int(sqrt(n))+1):
if i % num == 0 and i != num:
break
elif i % num != 0 and num == (int(sqrt(n))):
list_num.append(i)
return list_num
Java代碼:
public static boolean isPrime(long n) {
if (n = 3) {
return n 1;
}
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
for (int i = 5; i * i = n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
Php代碼:
function isPrime($n) {//TurkHackTeam AVP production
if ($n = 3) {
return $n 1;
} else if ($n % 2 === 0 || $n % 3 === 0) {
return false;
} else {
for ($i = 5; $i * $i = $n; $i += 6) {
if ($n % $i === 0 || $n % ($i + 2) === 0) {
return false;
}
}
return true;
}
}
C/C++代碼:
bool isPrime(unsigned long n) {
if (n = 3) {
return n 1;
} else if (n % 2 == 0 || n % 3 == 0) {
return false;
} else {
for (unsigned short i = 5; i * i = n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
}