c语言367+186第150个素数
本帖最后由 古道鸦 于 2019-3-14 11:20 编辑#include<stdio.h>
#include<stdlib.h>
void main()
{
int range=0;
int number;
int i;
while(range<150)
{
for(number=367;number;number+=186)
{
for(i=2;i<number;i++)
{
if(number%i==0)
{
break;
}
if(number==i)
range++;
}
}
}
printf("%d",number);
}
大佬,目的是为了求367不断+186结果中的第150个素数,想知道哪里错了,不输出结果
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(void)
{
int i , number , d , range ;
bool f ;
for(range = 0 , number = 367 ; range < 150 ; number += 186) {
f = true ;
d = (int) sqrt(number) + 1 ;
for(i = 2 ; i < d ; i ++) {
if(! (number % i)) {
f = false ;
break ;
}
}
if(f) range ++ ;
}
printf("%d\n" , number) ;
}
代码参考,不对的自己修改下
#include<stdio.h>
#include<stdlib.h>
void main()
{
int range, number, i, flag;
range = 0;
number = 367;
while(1)
{
number += 186;
flag = 1; // 先假定是素数
for(i=2;i<number;i++)
{
if(number%i==0)
{
flag = 0;
break;
}
}
if(flag)
{
range++;
// 第150个素数退出
if(range==150)
{
break;
}
}
}
printf("%d \n",number);
} 内层for循环里面的第一个if语句 break 把后面的range++拦住了 死循环了
页:
[1]