本題要求實作一個判斷素數的簡單函式,以及利用該函式判斷給定區間整數是否是素數,并按一行5個進行輸出的函式。
素數:只能被1和自身整除的正整數,1不是素數,2是素數
函式介面定義:
int IsPrime(int x);
void PrintPrime(int m,int n);
其中,函式IsPrime,當x是素數時回傳1,否則回傳0;函式PrintPrime輸出區間[m,n]內的所有素數,按一行5個進行輸出,若在此區間內沒有素數,則輸出“在此區間不存在素數”的提示資訊。
要求:main函式中輸入兩個正整數m和n,呼叫函式PrintPrime輸出結果,函式PrintPrime需呼叫IsPrime函式來判定區間[m,n]內整數是否為素數。
uj5u.com熱心網友回復:
迷得你一行代碼都寫不出來了...uj5u.com熱心網友回復:
這種題百度一大堆吧
uj5u.com熱心網友回復:
請移步我博客uj5u.com熱心網友回復:
for( j = n; j<=m; j++);for( i=2, isprime = true; i<=j/2; i++)
{
if (j%i == 0)
isprime = false;
}
return isprime;
判斷素數的代碼就這樣了 試一試 我不保證對的 其他另加就行了 這種題目百度很多的
uj5u.com熱心網友回復:
這個代碼,當n為1時,是不是1也是素數呢?
uj5u.com熱心網友回復:
1不是素數 也不是合數可以在第一個for回圈后面加個if(n == 1)
isprime = true;
else
{
第二個for回圈
}
uj5u.com熱心網友回復:
寫錯了 n == 1 isprime = false;uj5u.com熱心網友回復:
...isprime = false 后面加個break; 跳出第一個回圈就好了uj5u.com熱心網友回復:
#include <stdio.h>int IsPrime(int x)
{
if (x < 2)return 0;
for (int i = 2; i < x; i++)
{
if (x % i == 0)
return 0;
}
return 1;
}
void PrintPrime(int m, int n)
{
int count = 0;
int k = 0;
for (int i = m; i <= n; i++)
{
if (IsPrime(i))
{
printf("%d ", i);
k++;
count++;
}
if (k == 5)
{
printf("\n");
k = 0;
}
}
if(!count)printf("no prime in the area");
}
int main()
{
int m, n;
printf("input two number:");
scanf("%d %d", &m, &n);
if (m < n)
{
PrintPrime(m, n);
}
else
{
PrintPrime(n, m);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77426.html
標籤:C語言
上一篇:輸出亂碼問題
下一篇:收到一封盜QQ的郵件
