题目描述
水系魔法师喜欢一切漂亮的事物,孪生漂亮数就是其中之一,所谓孪生漂亮数就是一个自然数,若它的素因数至少是两重的(相同的素因数至少个数为二个),如:36=2×2×3×3,则称该数为“漂亮数”。若相邻的两个自然数都是“漂亮数”,就称它们为“孪生漂亮数”,例如8和9就是一对“孪生漂亮数”, 编程再找出一对“孪生漂亮数”。
输入
无。
输出
标准输出,除了8和9以外的下一个“孪生漂亮数”,这两个数,以空格间隔。
思路:
#include<iostream>
#include<cmath>
#include<sstream>
#include<string.h>
#include<cstring>
#include<stdio.h>
#include<cstdio>
#include<set>
#include<queue>
#include<algorithm>
#include<vector>
# define ll long long
using namespace std;
int ls(int n)
{
int i=2,sum=0;
while(n!=1)
{
if(n%i==0)
{
sum++;
n/=i;
if(sum==2)/*如果计数器为2,就有两个一样的素数因子*/
return 1;
}
else
{
sum=0;/*如果整除被中断了,计数器就清0*/
i++;
}
}
return 0;/*如果到最后还没有两个相同的因子就返回0*/
}
int main()
{
for(int i=10;;i++)
{
if(ls(i)&&ls(i+1))
{
cout<<i<<" "<<i+1;
return 0;
}
}
}