记
题目如图。
#include<stdio.h> #include<math.h> int main() { int n; int i,j,k,w; int mlc,sum=0; int a[10000]={0}; scanf("%d",&n); k=0; for(i=1;i<=n;i++) { mlc=0; w=sqrt((double)i); for(j=2;j<=w;j++) { if(i%j==0&&i>j) mlc++; } if(mlc==0) { a[k]=i; k++; } } for(i=0;i<(k-1);i++) { if( (a[i+1]-a[i])==2 ) { sum++; } } printf("%d\n",sum); return 0; }
判断下素数就好。
利用循坏内循环,最外面的循环是使输入的数字前面每个数都过一遍,使他可以每个判断,内循环是判断它是不是素数,将它前面除了1和它本身的数字过一遍,要是没有一个符合i%j==0则是素数(因为这里要考虑1和2,所以要加一个条件&&i>j),若是素数,就把它取入一个数组b[z]=i; z++;当判断完毕,再加一个循环,当(a[i+1]-a[i]==2)则使sum++最后输出sum;(记得把sum赋初值);