孪生素数

来源:互联网 发布:福建人 知乎 编辑:程序博客网 时间:2024/04/28 18:57
#include <stdio.h>#include <stdlib.h>#include<math.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop *//*代码中学习ACM,才是王道!孪生素数问题:输入m,输出两个数均不超过m的最大孪生数(也就是n是素数,n+2是素数,这两个数就是孪生素数)。5<=m<=1000例如:输入:20输出:17 19输入:1000输出:881 883 */ //判断一个数是否是素数,是返回1,不是返回0 int is_prime(int n){//求平方根,并四舍五入int m=floor(sqrt(n) +0.5); //判定素数的条件,如果一个数,被2到平方根之间,且小于自己的数整除,就是素数int i;if(n==1)return 0;   //注意:1不是素数 for(i=2;i<=m;i++){//不是素数,返回0    if(n%i==0)  return 0;    }       return 1;}int main(int argc, char *argv[]) {int n;scanf("%d",&n);int j;//从大到小 for(j=n;j>=3;j--){if(is_prime(j)&&is_prime(j-2)){printf("%d\n",j);printf("%d",j-2);//获得解,跳出 break;}}return 0;}

0 0
原创粉丝点击