`
niyayu
  • 浏览: 34135 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

三姐妹之出题

 
阅读更多
#include<iostream>
#include<math.h>
using namespace std;
struct stuOneF
{
    int nFact;
    int nPow;
};
struct stuAllFs
{
     int nFact[50];
     int nPow[50];
     int nCount;
};
stuAllFs stuGetAll(int nInN);
void vOutput(stuAllFs stuAns);
stuOneF stuGetOne(int & nInN,int nDiv);

int main()
{
     int nCase;
     int i;
     stuAllFs stuAns;
     int nInNum;
     cin >> nCase;
     for(i=1;i<=nCase;i++)
     {
          cin >> nInNum;
          stuAns=stuGetAll(nInNum);
          vOutput(stuAns);
     }
return 0;
}
stuAllFs stuGetAll(int nInN)
{
     stuAllFs stuRet;
     stuOneF stuAl;
     int i,j;
     int nUpto;
if(nInN<1)
{
  stuRet.nCount=0;
  return stuRet;
}
i=2;
j=0;
nUpto=(int)(sqrt(nInN*1.0));
while(i<=nUpto)
{
  stuAl=stuGetOne(nInN,i);
  if(stuAl.nPow>0)
  {
   stuRet.nFact[j]=stuAl.nFact;
   stuRet.nPow[j]=stuAl.nPow;
   j++;
   nUpto=(int)(sqrt(nInN*1.0));
  }
  i++;
}
stuOneF stuGetOne(int & nInN,int nDiv);
if(nInN>1)
{
  stuRet.nFact[j]=nInN;
  stuRet.nPow[j]=1;
  j++;
}
stuRet.nCount=j;
return stuRet;
}
void vOutput(stuAllFs stuAns)
{
     int i;
     int nAns=1;
     for(i=1;i<=stuAns.nCount;i++)
     {
         nAns*=2*stuAns.nPow[i-1]+1;
     }
     cout << nAns << endl;
}
stuOneF stuGetOne(int & nInN,int nDiv)
{
     stuOneF stuRet;
     stuRet.nFact=nDiv;
     stuRet.nPow=0;
while(nInN%nDiv==0)
{
     nInN/=nDiv;
     stuRet.nPow++;
}
return stuRet;
}
 





#include<stdio.h>
#include<math.h>

struct stuOne
{
int nNum;
int nPow;
};

struct stuAll
{
int nNum[50];
int nPow[50];
int nCount;
};

void vOutPut(struct stuAll stu)
{
    int i;
int nPlus=1;

for(i=1;i<=stu.nCount;i++)
{
nPlus*=2*stu.nPow[i-1]+1;
}
printf("%d\n",nPlus);
}

stuOne stuGetOne(int &num,int i)
{
struct stuOne stuRet;
stuRet.nNum=i;
stuRet.nPow=0;

while(num%i==0)
{
num/=i;
stuRet.nPow++;
}
return stuRet;
}


stuAll getAll(int num)
{
struct stuAll stuRet;
struct stuOne stu0;
int i,j;
int endLine;

if(num<1)
{
stuRet.nCount=0;
return stuRet;
}

i=2;
j=0;
    endLine=(int)sqrt(num*1.0);

while(i<=endLine)
{
stu0=stuGetOne(num,i);

if(stu0.nPow>0)
{
stuRet.nNum[j]=stu0.nNum;
stuRet.nPow[j]=stu0.nPow;
j++;
endLine=(int)sqrt(num*1.0);
}
i++;
}
stuOne stuGetOne(int &num,int i);
if(num>1)
{
stuRet.nNum[j]=num;
stuRet.nPow[j]=1;
j++;
}


stuRet.nCount=j;
return stuRet;

}

int main()
{
int n,i;
int num;
struct stuAll stu;

while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%d",&num);
stu=getAll(num);
vOutPut(stu);
}
}
return 0;
}


下面的程序是自己写的,今天终于搞定了,想想其实挺简单的,有了思路然后再一步步去实现,其中纠结了很久的一段代码原来是判断最后一个数字的,今天终于想通了。
感谢自己的坚持!
分享到:
评论

相关推荐

    三年级口算出题器

    根据新课标,能自动出题,供老师、家长使用。

    小学三年级数学计算题自动出题器1.01

    小学三年级数学计算题自动出题器1.01 出计算题是一件麻烦事 有了这个出题器 一点就搞定!

    Delphi7小学三年级口算出题软件源码

    《Delphi7编程实现小学三年级口算出题系统》 Delphi7是一款历史悠久但依然具有强大功能的集成开发环境(IDE),它以其高效的编译器和面向对象的 Pascal 语言深受程序员喜爱。在这个项目中,我们关注的是一个利用 ...

    易语言三种判断之出题器源码,易语言算术出题器源码,易语言大强学

    本文将深入探讨“易语言三种判断之出题器源码”及其相关知识点,主要关注“易语言算术出题器源码”,以及如何通过这个工具帮助用户学习编程。 首先,我们要理解易语言的语法结构。易语言的核心理念是“易学易用”,...

    QT之小学生自动出题软件

    这是一款在QT平台开发的,简易的自动出题软件。 主要包含一个主界面提供算法的选择,选择后跳转到对应的窗口进行练习,练习完毕后点击评分按钮统计总题数、对的题数、错的题数。 主要功能有加法运算、减法运算、乘法...

    随想出题随想出题免费版

    随想出题是一款专为教育领域设计的软件,其免费版提供了基础的试题生成与管理功能,旨在帮助教师和学生更便捷地进行教学活动。这款软件的核心特点是简单易用,功能实用,尤其适合家庭学习和课堂教学环境。 1. **...

    口算伴我成长系列口算出题系统 4.0 build20201018

    口算伴我成长系列口算出题软件简介 以EXCEL自行编制的系列自动出题软件,主要适用于小学低年级学生练习口算使用。 随着孩子学习的深入,以及和家长们的交流,发现对口算的需求将是个长期的艰巨任务。故将编写的口算...

    日语三级出题基准2007(最新)

    《日语三级出题基准2007》是针对日语学习者的一项重要参考资料,尤其对于准备参加日本语能力测试N3级别的考生来说,它提供了详细的考试标准和学习指南。这个压缩包文件包含了该级别考试的主要组成部分:语法、词汇和...

    小学生自动出题器 自动出题器.exe

    昨天晚上老师布置家庭作业,让家长出口算题100道给孩子练习乘法口诀,绞尽脑汁没想出来。 在朋友处找了个自动出题器,分享给大家,没事给熊孩子找点事情干,省得天天抢我手机!!

    试卷自动出题系统

    ### 试卷自动出题系统知识点解析 #### 一、系统概述 **试卷自动出题系统**是...综上所述,试卷自动出题系统通过巧妙的设计和技术应用,实现了高效、便捷、安全的在线考试解决方案,是现代教育技术发展的重要成果之一。

    口算出题器V1.13.7.23

    通过智能化的出题机制和便捷的打印功能,这款软件能够有效提高学生口算能力,激发他们的学习兴趣,为他们的数学学习之路打下坚实的基础。在压缩包中的"kousuan.exe"文件,就是这个出题器的执行程序,只需运行即可...

    棒棒糖小学数学口算出题器v1.9.1.rar

    棒棒糖小学数学出题器是一款功能强大、全面,简单易用的数学口算出题软件,傻瓜式操作,无需复杂设置,非常适合家长和老师给学生出题用。软件开发过程中充分结合了教科书中的教学内容,由浅至深,不放过每一个细节。...

    珠心算随机出题

    3. **三位数随机出题.xlsx**:当孩子们对一位数和二位数的运算得心应手后,三位数的题目开始引入,进一步挑战他们的计算能力和心算技巧。通过解决这些题目,孩子们可以掌握更高层次的珠心算技能。 4. **四位数随机...

    小学数学口算题出题助手

    小学数学口算题出题助手

    数学计算出题器v2.1免费绿色版

    数学计算出题器主要是针对幼儿园、小学数学打造的一款出题软件,从10以内到100以内的加减乘除都可以进行出题,操作简答,生成的试卷可以直接进行打印,需要的朋友快来下载吧 数学计算出题器使用方法 选择题目难度...

    易捷自动出题系统 v1.2.zip

    易捷自动出题系统是一款考试考前辅助背记助手软件。可以自动从已编辑好的题库中随机抽取题目(本软件会从抽取的题库中随机不重复出题每道题1次,可选题库或自己标注的错题),并可查看答案、自己写备注和错误标记...

    易语言小学试题出题

    例如,生成的两个加数之和是否在合理范围内,一道减法题的被减数是否大于减数等。这需要使用到易语言的条件判断语句,如`如果...那么...否则...`。 5. **生成公式**:试题中的计算公式需要动态生成,易语言支持字符...

    一站到底出题系统

    "一站到底出题系统"是一款专为企业培训设计的软件工具,旨在提高培训效率和质量,帮助组织者快速、高效地创建各类试题,适用于各种知识竞赛、员工考核或教育训练场景。这款系统可能包含了丰富的题库资源,支持多种...

    小学算术出题软件

    小学算术出题软件每次出题100道加减乘除都可以出题有问题可以联系woyson@qq.com

    数独解题程序和出题程序

    可以解决所有的数独题目,能够出题,每次出的题都不相同

Global site tag (gtag.js) - Google Analytics