// https://www.hackerrank.com/challenges/red-john-is-back
#include<stdio.h>
int ar[300000]={0};
long long fact(long long a){
long long i,b=1;
for(i=2;i<=a;i++){
b*=i;
}
return b;
}
int main(){
long long x,a,b,c,d,e,i,j,z;
ar[0]=ar[1]=1;
for(i=2;i<3000;i++){
if(ar[i]==0){
for(j=i*2;j<300000;j+=i){
ar[j]=1;
}
}
}
scanf("%lld",&d);
while(d--){
scanf("%lld",&a);
if(a<4){
b=1;
}else{
e=a/4;
b=1;
for(i=1;i<=e;i++){
z=1;
for(x=a-i*4+1;x<=a-i*4+i;x++){
z*=x;
}
z/=fact(i);
// printf("z=%lld\n",z);
b+=z;
}
}
c=0;
for(i=2;i<=b;i++){
if(ar[i]==0){
c++;
}
}
printf("%lld\n",c);
}
return 0;
}
problem statement is here
#include<stdio.h>
int ar[300000]={0};
long long fact(long long a){
long long i,b=1;
for(i=2;i<=a;i++){
b*=i;
}
return b;
}
int main(){
long long x,a,b,c,d,e,i,j,z;
ar[0]=ar[1]=1;
for(i=2;i<3000;i++){
if(ar[i]==0){
for(j=i*2;j<300000;j+=i){
ar[j]=1;
}
}
}
scanf("%lld",&d);
while(d--){
scanf("%lld",&a);
if(a<4){
b=1;
}else{
e=a/4;
b=1;
for(i=1;i<=e;i++){
z=1;
for(x=a-i*4+1;x<=a-i*4+i;x++){
z*=x;
}
z/=fact(i);
// printf("z=%lld\n",z);
b+=z;
}
}
c=0;
for(i=2;i<=b;i++){
if(ar[i]==0){
c++;
}
}
printf("%lld\n",c);
}
return 0;
}
No comments:
Post a Comment