帮忙写个C语言程序代码吧!

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:46:48
Euler’s polynomial x*x+x+41 can generate prime numbers for x = 0, 1, 2, 3, · · · .
Program to find out at what value this polynomial stops generating a prime number.
代码告诉我!很急在线等!

#include <stdio.h>

int prime(int num)
{
int i=0;
for(i=2;i<num;i++)
if(num%i==0) return 1;
return 0;
}

main()
{
int i=0;
for(;i<100;i++)
{
if(prime(i*i+i+41))
{
printf("%d ",i);
return 0;
}
}
}
结果是:40
解释:题目的意思是从0到某个数n-1,这n数代入x*x+x+41,得到的都是一个素数,当把n代入x*x+x+41得到是一个非素数,问这个n是多少.
那你就从0-n一直代入这个多项式,直到这个多项式的值不为素数.输出n就行了,用了一个函数,这个函数是用来判断某个数是不是素数,当然,这个函数还可以改进,不让它小于num,而小于num的开方.还有主函数中小于100,如果找不到就让它小于1000,一直推~

输出第一个不能生成素数的x:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <math.h>

int prime(long int n)
{
long int sq=(long int)sqrt(n);
long int i;
for (i=2; i<=sq; i++) {
if (n%sq==0) {
return 0;
}
}
return 1;
}
int main(void)
{
long int x;