热门

最新

红包

立Flag

投票

同城

我的

发布
weixin_56645631
苏哈哈462
4 年前
trueweixin_56645631

#696 B;
思路:数论,一个数一定可以被分解为质数因子相乘,每个质数因子之间必须相差d而且1一定是因子所以第一个质数因子要是d+1起步,第二个质数因子至少第一个质数因子+1起步,找到这两个质数因子把他们相乘就可以发现满足题目要求的两个条件而且是最小;
#include<stdio.h>
int ai[100010];
int main()
{
int t;
ai[1]=1;
for(int i=2;i<=100010;i++)
{
if(!ai[i])
{
for(int j=i+i;j<=100010;j+=i)
ai[j]=1;
}
}
scanf("%d",&t);
while(t--)
{
int d;
scanf("%d",&d);
int x=d+1;
while(ai[x])x++;
int y=x+d;
while(ai[y])y++;
printf("%d\n",y*x);
}
return 0;
}

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
Java多线程高并发的资料求推荐(书或者视频)看了视频觉得自己学的还是比较浅
立即登录