PAT上分记(c++ + 完美过关)---1007---素数对猜想

素数对猜想 c++

在这里插入图片描述

#include<stdio.h>
#include<iostream>
#include<cmath>

int is_sushu(int num) {
	int i;
	for (i = 2; i <= sqrt(num+2); i++) {
		if (num % i == 0 || (num + 2) % i == 0) {
			return 0;
		}
	}
	return 1;
}

int main() {
	int number = 0, sum = 0 ;
	std::cin >> number;
	if (number < 5) {
		std::cout << 0;
		return 0;
	}
	for (int i = 3; i <= number - 2; i = i + 2) {
		//std::cout << i;
		if (is_sushu(i) == 1) {
			//std::cout << i << '\n';
			sum++;
		}
	}
	std::cout << sum;
	return 0;
}


唯一值得注意的一点就是,在循环判断是否是素数的时候,区间是n+2的方根数而不是n-1

发布了16 篇原创文章 · 获赞 3 · 访问量 521

猜你喜欢

转载自blog.csdn.net/godleisen/article/details/103828608