Problem 49 Prime permutations (set + vector)

网友投稿 605 2022-10-21

Problem 49 Prime permutations (set + vector)

Problem 49  Prime permutations (set + vector)

Prime permutations

Problem 49

The arithmetic sequence, 1487, 4817, 8147, in which each of the terms increases by 3330, is unusual in two ways: (i) each of the three terms are prime, and, (ii) each of the 4-digit numbers are permutations of one another.

There are no arithmetic sequences made up of three 1-, 2-, or 3-digit primes, exhibiting this property, but there is one other 4-digit increasing sequence.

What 12-digit number do you form by concatenating the three terms in this sequence?

Answer:

296962999629

Completed on Mon, 31 Oct 2016, 10:42

代码

#includeusing namespace std;int is_prime(int n){ if (n <= 1) { return 0; } else if (n == 2 || n == 3) { return 1; } else if (n % 2 == 0) { return 0; } else { for (int i=3;i<=(int)sqrt((float)n);i++) { if (n % i == 0) { return 0; } } return 1; }}int same_digits(int a,int b){ vector va(4); vector vb(4); while(a != 0 && b != 0) { va.push_back(a%10); vb.push_back(b%10); a /= 10; b /= 10; } sort(va.begin(),va.end()); sort(vb.begin(),vb.end()); return va == vb;}int main(){ vector primes; //保存所有四位数的质数 for (int n=1000;n<=9999;n++) { if(is_prime(n)) primes.push_back(n); } int num = primes.size(); //质数个数 for (int i=0;i::iterator it; it = find(primes.begin(),primes.end(),last); //查找第三个数 last 是否在primes中 if (it != primes.end()) //在primes中 { if (same_digits(primes[i],last)) //含有相同的数字 { cout<

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Problem 30 Digit fifth powers (暴力枚举)
下一篇:复制Excel至Markdown,它是Excel的外接程序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~