ll1111r 2017-12-03 06:57 采纳率: 33.3%
浏览 755

请问大数在在循环中应该怎样才能提高效率,一道简单的题目为例

一个数如果满足以下全部条件的话,那么这个数便是滋润数。

  1. a为正整数
  2. 区间[a,2a]内至少有一个素数
  3. (((a*307829558302172+9317635829295)%56323)+18)%17=1成立 现在夏吉巴先生想知道,在区间[1,n]内有多少个滋润数。 Input 输入的第一行为t(1<=t<=10000),表示有t组数据。 接下来有t行,每行为一组数据,仅包含一个整数n(2<=n<=1,000,000,000,000,000,000)

Output
对于每组数据,输出区间[1,n]内的滋润数的个数。

代码如下,多多指教!

int Is_prime(int a);

int main()
{
int t,n,a,r,j,sum=0;
while(scanf("%d\n",& t)!=EOF)
{
while(t--)
{
scanf("%d",& n);

         if(n>0)
        {
            for( j=1;j<=n;j++)
            {
                while(j<=2*j)
                {
                    if(Is_prime(j))
                        {
                            r=1;
                            break;
                        }
                     else r=0;
                }
                if(r==1 && (((j*307829558302172+9317635829295)%56323)+18)%17==1)
                sum+=1;
            }
            printf("%d\n\n",sum);
            sum=0;
        }

    }
}
return 0;

}
int Is_prime(int a)
{
for(int i=2;i<sqrt(a);i++)
{
if(a%i==0) {return 0;}

}

    return 1;

}

  • 写回答

1条回答 默认 最新

  • Star丶Xing 2017-12-04 07:04
    关注

    提问前先把自己的文本格式整理好吧

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题