任务1:
采用试商法,分别用goto语句、break语句和设置标志变量并加强循环测试等三种方法编写素数判断函数IsPrime(),从键盘任意输入一个整数m,判断m是否为素数,如果m是素数,则按"%d is a prime number\n"格式打印该数是素数,否则按"%d is not a prime number\n"格式打印该数不是素数。
任务2:
用数学的方法可以证明,不能被2~ m \sqrt m m(取整)之间的数整除的数,就是素数。根据这个性质,修改素数判断函数IsPrime()的具体实现,编程完成任务1。
任务3:
从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和。
任务4:
从键盘任意输入一个整数m,若m不是素数,则计算并输出其所有的因子(不包括1),例如对于16,输出2、4、8;否则输出"No divisor! It is a prime number"。
任务5:
如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么称它为完全数。例如6就是一个完全数,因为6=1+2+3。请编写一个完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。
任务6:
从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m以质因数从小到大顺序排列的乘积形式输出,否则输出"It is a prime number"。 例如,用户输入90时,程序输出90=233*5;用户输入17时,程序输出"It is a prime number"。
任务1、2 实现
#include <stdio.h>
#include <stdlib.h>
int GetTemp(int num);
int IsPrime1(int num,int temp);
int IsPrime2(int num,int temp);
int IsPrime3(int num,int temp);
int main()
{
int n=1,num,ret,temp,pri,sum=0;
printf(</