本文主要是介绍C语言:亲密数对,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
在自然数中有一种这样的数:它自身是一个完全平方数,加上1之后是一个素数,这一对数被称为亲密数对,请编程找出指定区域内的所有亲密数对。
例如在[10,100]之间的亲密数对有:(16,17),(36,37)
在[100,200]之间的亲密数对有:(100,101),(196,197)
在[1000,2000]之间的亲密数对有:(1296,1297),(1600,1601)
输入格式
一行,两个整型数据s和t,表示指定的区间[s,t],且10≤s≤t≤10,000,000,中间以空格分隔。题目保证指定区间内至少有一对亲密数
输出格式
每一对亲密数对占一行,第一个是完全平方数,第二个是素数,中间以空格分隔。
#include <stdio.h>
#include <math.h>
#include <string.h>
int prime(int n)
{if(n<=1){return 0;}else{int i;int flag=1;for(i=2;i<=sqrt(n);i++){if(n%i==0){flag=0;}}if(flag==1){return 1;}else{return 0;}}
}int wanquan(int n)
{int t=sqrt(n);if(t*t==n){return 1;}else{return 0;}
}int main()
{int s,t;scanf("%d%d",&s,&t);int i;for(i=s;i<t;i++) //i要小于t,不能等于t{if(wanquan(i)&&prime(i+1)){printf("%d %d\n",i,i+1);}}return 0;
}
这篇关于C语言:亲密数对的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!