程序执行下来只能到达七位数,而要求是达到1000000000,

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:48:38
原题如下(即找对称质数 范围 5 - 100000000)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long a,b;

long power(int x)
{
long temp = 1;
int i;
for (i = 1;i <= x;++i)
{
temp *= 10;
}
return temp;
}

short count(long temp)
{
int i = 0;
while (temp / power(i) != 0)
{
i++;
}
return i;
}

long turn(long temp,int the_count)
{
long go = 0;
int i = 0;
for (i = 1;i <= the_count;++i)
{
go += ((temp % power(i)) / power(i - 1)) * power(the_count - i);
}
return go;
}

int decide(long temp)
{
long i;
if (temp < a)
{
return 0;
}
else if (temp > b)
{
exit(1);
}
else
{
for (i = 2;i <= (long)(sqrt(temp));++i)
{
if ((temp % i) == 0)
{
return 0;
}

int -32768~32767
short int -32768~32767
signed int -32768~32767
unsigned int 0~65535
long int -2147483648~2147483647
unsigned long 0~4294967295

用long long int定义,可以表示64位长整范围

这个问题也困扰我很久。。。1年了吧估计。。。
long long好像一般的编译器不支持..