return s; } int main() { int i; for(i=2;i++) { intb=js(i);∥先求出数i的因子之和为b ifjs(b)=i&&i=b)∥然后调用js函数,判断b的因子之和是否为i cout <<i<<""<<b<<endl; break,找到第一个数i即为最小的亲和数,用break退出 } 12等差素数列蓝桥杯真题 2,3,5,7,11,13.…是素数序列。类似:7,37,67,97,127,157这样完全由素数组成的等差数列,叫 等差素数数列。上边的数列公差为30,长度为6.2004年,格林与华人陶哲轩合作证明了: 存在任意长度的素数等差数列。这是数论领域一项惊人的成果!有这一理论为基础,请你借 助手中的计算机,满怀信心地搜索:长度为10的等差素数列,其公差最小值是多少?(2017 年大学生蓝桥杯第2题) 1)定义一个函数js,判断n是否为质数 2)main中,用一个for循环枚举公差, for(intd=1;d<=l000;d=d+1)∥枚举公差 然后对每一个公差,枚举10个数的第一个数for(iti=1;i<=10000:i+)∥多试几次 对第一个数i,在公差d下,连续10个数是否为质数,如果为质数,则找到了这个最小公 差,break #include <bits/stdc++.h> using namespace std; int js(intn)∥判断n是否是质数 int s=1; for(int i=2;i<=sqrt(n);i++) if(n%i==0)
return s; } int main() { int i; for(i = 2; ;i ++) { int b = js(i); //先求出数 i 的因子之和为 b if( js(b) == i &&i != b ) //然后调用 js 函数,判断 b 的因子之和是否为 i { cout <<i <<" " << b<< endl; break; //找到第一个数 i 即为最小的亲和数,用 break 退出 } } } 12 等差素数列 蓝桥杯真题 2,3,5,7,11,13,....是素数序列。类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫 等差素数数列。上边的数列公差为 30,长度为 6。2004 年,格林与华人陶哲轩合作证明了: 存在任意长度的素数等差数列。这是数论领域一项惊人的成果!有这一理论为基础,请你借 助手中的计算机,满怀信心地搜索:长度为 10 的等差素数列,其公差最小值是多少?(2017 年大学生蓝桥杯第 2 题) 1)定义一个函数 js,判断 n 是否为质数 2)main 中,用一个 for 循环枚举公差, for(int d = 1 ; d<=1000 ; d = d + 1) //枚举公差 然后对每一个公差,枚举 10 个数的第一个数 for(int i=1 ;i<=10000;i ++) //多试几次 对第一个数 i,在公差 d 下,连续 10 个数是否为质数,如果为质数,则找到了这个最小公 差,break #include <bits/stdc++.h> using namespace std; int js(int n) //判断 n 是否是质数 { int s = 1; for(int i = 2; i <= sqrt(n); i ++) { if(n%i == 0)
{ s=0: break: return s; int main() for(intd=1;d<=1000;d=d+1)∥枚举公差 for(inti=1;i<=10000;i+)∥多试几次 if(js(i)&js(i+d)&&js(i+2*d)&&js(i+3*d)&& ji+4*d)&&js(i+4*d)&&ji+5*d)&&js(i+6*d)&&jsi+7*d)&& js(i+8*d)&&js(i+9*d)) /然后对每一个公差,枚举10个数的第一个数,对第一个数i,在公差d下,连 续l0个数是否为质数,如果为质数,则找到了这个最小公差,break cout <d <<endl: break; 13排它平方数2013年蓝桥杯竞赛A组 小明正看着203879这个数字发呆。 原来,203879*203879=41566646641 这有什么神奇呢?仔细观察,203879是个6位数,并且它的每个数位上的数字都是不 同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的6位数还有 一个,请你找出它! 再归纳一下筛选要求: 1.6位正整数 2.每个数位上的数字不同 3.其平方数的每个数位不含原数字的任何组成数位。答案是一个6位的正整数。 请通过浏览器提交答案
{ s = 0; break; } } return s; } int main() { for(int d = 1 ; d<=1000 ; d = d + 1) //枚举公差 { for(int i=1 ;i<=10000;i ++) //多试几次 { if( js(i) && js(i+d) && js(i+2*d) && js(i+3*d) && js(i+4*d) &&js(i+4*d) && js(i+5*d)&&js(i+6*d) &&js(i+7*d) && js(i+ 8*d) &&js(i+9*d)) //然后对每一个公差,枚举 10 个数的第一个数,对第一个数 i,在公差 d 下,连 续 10 个数是否为质数,如果为质数,则找到了这个最小公差,break { cout << d <<endl; break; } } } } 13 排它平方数 2013 年蓝桥杯竞赛 A 组 小明正看着 203879 这个数字发呆。 原来,203879 * 203879 = 41566646641 这有什么神奇呢?仔细观察,203879 是个 6 位数,并且它的每个数位上的数字都是不 同的,并且它平方后的所有数位上都不出现组成它自身的数字。具有这样特点的 6 位数还有 一个,请你找出它! 再归纳一下筛选要求: 1. 6 位正整数 2. 每个数位上的数字不同 3. 其平方数的每个数位不含原数字的任何组成数位。答案是一个 6 位的正整数。 请通过浏览器提交答案