//求输入的范围中的质数的个位数相加的和与十位数相加的较小值 #include <iostream> #include <algorithm> using namespace std; //用空间换时间,用一个数组存放一个范围内的质数和合数的情况 int isPrime[1000] = {0}; //prime表示质数 //0表示质数,1表示合数 int main() { //初始化数组 for (int i = 2; i <= 1000; i++) { //从i开始能整除i的都是合数 if (isPrime[i] == 0) { for (int j = i + i; j <= 1000; j += i) { isPrime[j] = 1; } } } int low; int high; int sum1 = 0; int sum2 = 0; //求[low,high]范围内质数和合数的情况 cin >> low >> high; for (int i = low; i <= high; i++) { if (isPrime[i] == 0) { //为质数 sum1 += (i%10); sum2 += (i/10)%10; } } cout << min(sum1,sum2)<<endl; system("pause"); return 0; }
点赞 评论
牛客网
牛客网在线编程
牛客网题解
牛客企业服务