• 蓝桥杯训练 算法提高 三进制数位和 (暴力枚举)


    问题描述

      给定L和R,你需要对于每一个6位三进制数(允许前导零),计算其每一个数位上的数字和,设其在十进制下为S。

      一个三进制数被判断为合法,当且仅当S为质数,或者S属于区间[L,R]。

      你的任务是给出合法三进制数的个数。

    输入格式

      一行两个非负整数L,R。

    输出格式

      一行一个非负整数表示答案。

    样例输入

    0 0

    样例输出

    330

    数据规模和约定

      保证0<=L<R<=12。

    提示

      判断x是否为质数核心代码:for (int i = 2; i * i <= x; ++i) if (x % i == 0) {/*你猜?*/}

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    
    int main() {
    	int n,m,j,k,i,T;
    	int a,b,c,d,e,f;
    	int L,R;
    	scanf("%d%d",&L,&R);
    	int sum=0;
    	for(a=0;a<=2; a++) 
    	{
    		for (b=0; b<=2; b++) 
    		{
    			for (c=0; c<=2; c++) 
    			{
    				for (d=0; d<=2; d++) 
    				{
    					for (e=0; e<=2; e++) 
    					{
    						for (f=0; f<=2; f++) 
    						{
    							int num = a+b+c+d+e+f;
    							if (num>=L&&num<=R) 
    							{
    								sum++;
    								continue;
    							}
    							if (num==0||num==1)
    							continue;
    							for (j=2; j*j<=num; j++) 
    							{
    								if (num%j==0)
    									break;
    							}
    							if (j*j>num) 
    							{
    								sum++;
    								continue;
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    
    	printf("%d
    ",sum);
    	return 0;
    }
  • 相关阅读:
    文档测试
    浅谈兼容性测试
    配置测试
    测试产品说明书
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451135.html
Copyright © 2020-2023  润新知