定義isprime(n)函式用來判定整數n是否是素數;在主函
數中呼叫該函式,判斷整數k取值范圍在-39~40之間時,
k2+k+41的值是否是素數;如果是,則輸出k及對應表達
式k2+k+41的值。 為什么結果運行一直為0,求大神指導
uj5u.com熱心網友回復:
printf用錯了uj5u.com熱心網友回復:
啊?那應該怎么用呢
uj5u.com熱心網友回復:
首先 你的題目要求 判斷k2+k+41的值是否是素數 而你卻在判斷-39~40是不是素數 你這答案就肯定有問題了吧其次你的isprime函式就有問題 素數的定義是什么 ?除了1和它本身 不能被其他數整除 也就是說這個數不能被2~n-1中的所有數整除 才算是素數
而你的是什么意思 只要2~n-1中有一個不能整除 就算是素數?舉個例子 15不是素數 但是你的函式15 % 2 = 1 所以15是素數了 你覺得對嗎?
if(n%i)==0
return 0;
else
return 1
以下代碼供參考:
#include <stdio.h>
int isprime(int n)
{
if (n < 2)
return 0;
for (int i = 2; i < n; i++)
{
if (n % i == 0){
return 0;
}
}
return 1;
}
int main()
{
int k, n;
for (k = -39; k <= 4; k++)
{
n = k * k + k + 41;
if (isprime(n))
{
printf("k=%d k * k + k + 41=%d\n", k, n);
}
}
return 0;
}
uj5u.com熱心網友回復:
啊?uj5u.com熱心網友回復:
明白了明白了,謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228617.html
標籤:C++ 語言
上一篇:Virual Studio 2019 Windows SDK周期性消失問題
下一篇:C++通訊錄管理系統課設
