概述
题目
一天蒜头君猜想,是不是所有的偶数(除了 22),都可以用两个质数相加得到呢?于是聪明的蒜头君就找你来验证了。
输入格式
第一行输入一个整数 tt 表示测试组数。
接下来 tt 行,每行一个整数 nn。
输出格式
输出两个整数,因为答案可能有多个,所有要求输出的这两个整数是所有答案中字典序最小的。
数据范围
对于 30%30% 的数据 1 le t le 10^31≤t≤103。
对于 60%60% 的数据 1 le t le 10^51≤t≤105。
对于 100%100% 的数据 1 le t le 10^6, 4 le n le 10^61≤t≤106,4≤n≤106,nn 为偶数。
Sample 1
Inputcopy Outputcopy 3 4 8 20 2 2 3 5 3 17
解析:
这道题我用到的是筛法找质数,然后在[l,r]区间内循环然后判断两个数是否都为质数
AC代码
#include<stdio.h>
#include<iostream>
using namespace std;
int a[1000005];
//筛法找素数
void prime()
{
int i,j;
for(i=0;i<=1000000;i++)
a[i]=1;
a[0]=a[1]=0;
for(i=2;i<=1000;i++)
{
if(a[i]==1)
{
for(j=i*2;j<=1000000;j=j+i)
{
a[j]=0;
}
}
}
}
int main()
{
prime();
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=2;i<=n/2;i++)
{
if(a[i]==1&&a[n-i]==1)
{
printf("%d %dn",i,n-i);
break;
}
}
}
return 0;
}
努力努力再努力
最后
以上就是害羞红牛为你收集整理的计蒜客 A2238 找质数 AC代码努力努力再努力的全部内容,希望文章能够帮你解决计蒜客 A2238 找质数 AC代码努力努力再努力所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复