柒桨不是木头 2023-03-23 19:07 采纳率: 66.7%
浏览 45

C语言前缀和为什么输不出答案

C语言题目,题干如下:
根据质因子唯一分解定理可知n=pk11pk22…pkmm,其中pi都是质数。我们定义f(n)=m, 求g(a,b)=∑bi=af(i)。

输入#
第一行是一个整数T(1≤T≤1000),表示样例的个数。

以后每个样例占一行,为两个整数 a(2≤a≤b≤106)。

输出#
依次每行输出一个样例的结果,为一个整数。

样例输入#
2
2 2
2 10
我的代码如下

#include<stdio.h>
#define N 1000007
int pr[N];
int ma[N];
void get()
{
    int i,j,k,x;
    pr[2] = 1;
    for(x = 3;x < N;x+=2)
    {
        for(i = 2;i*i <=x;i++)
        {
            if(x%i == 0) break;
        }
        if(i*i > x) 
        {
            pr[x] = 1;
        }
    }//标记每一个质数 
    for(i = 2;i < N;i++)
    {
        k = i;
        for(j = 2;j <= i;j++)
        {
            if(k == 1) break;
            if(pr[j])
            {
                if(i%j == 0)
                {
                    ma[i]++;
                    while(k%j == 0) k = k/j;
                }
            }
        }
        ma[i] = ma[i-1]+ma[i];
    }
}
int main(void)
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int a,b;
        scanf("%d %d",&a,&b);
        get();
        printf("%d\n",ma[b]-ma[a-1]);
    }
    return 0;
}

为什么无法输出结果?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-30 15:44
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7774938
    • 你也可以参考下这篇文章:棋盘覆盖超详细解析+代码实现-分治法解决
    • 除此之外, 这篇博客: 【顺序表实现方式】静态分配与动态分配中的 静态分配完整代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
      /*顺序表的静态分配*/
      #include <stdio.h>
      #define MaxSize 10		//定义最大长度
      typedef struct
      {
      	int data[MaxSize];	//用静态的“数组”存放数据元素
      	int length;			//顺序表的当前长度
      }SqList;				//顺序表的类型定义,SqList:Sequence List(顺序表)
      
      //初始化一个顺序表
      void InitList(SqList &L)
      {
      	for(int i=0; i<MaxSize;i++)
      		L.data[i]=0;	//将所有数据元素设置为默认初始值0
      	L.length=0;			//顺序表初始长度为0
      }
      
      int main()
      {
      	SqList L;			//声明一个顺序表
      	InitList(L);		//初始化顺序表
      	for(int i=0;i<MaxSize;i++)
      		printf("data[%d]=%d\n",i,L.data[i]); 
          return 0;
      }

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 3月23日

悬赏问题

  • ¥15 elasticsearch
  • ¥30 python ttk 获取下拉框问题
  • ¥15 uniapp的uni-datetime-picker组件在ios端不适配
  • ¥15 前端 uniapp App端在离线状态如何使用modbus 连接手机蓝牙进行读写操控机器?
  • ¥15 SQL语句根据字段自动生成行
  • ¥500 “掌声响起来”软件(不确定性人工智能)
  • ¥500 我要找大模型一体机产品手册和应用案例
  • ¥60 用r语言进行数据分析
  • ¥20 关于游戏c++语言代码问题
  • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)