hdu 2521

来源:互联网 发布:win10桌面时钟软件 编辑:程序博客网 时间:2024/06/07 22:28
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2521没有用到反素数。。。。。。。。。。。。。。。。。。。。先打表,再查询。
#include <stdio.h>const int MAX = 5000+10;int num[MAX];int fun(int x){int y = 2, ans=1, t = 0;while (x!=1){if (x%y==0){t++;x = x/y;}else{ans = ans *(t+1);y++;t = 0;}}ans = ans *(t+1);return ans;}void init(){int i;for (i=1; i<=5000;i++){num[i] = fun(i);//printf("%d\n", num[i]);//getchar();}}int find(int a, int b){int i, maxsum = num[a], bestnum = a;for (i=a; i<=b; i++){if (num[i]>maxsum){maxsum = num[i];bestnum = i;}}return bestnum;}int main(){init();int a, b ,t;scanf("%d", &t);while (t--){scanf("%d%d", &a, &b);printf("%d\n", find(a, b));}}


 

原创粉丝点击