本帖最后由 Gin_Q 于 2019-12-14 11:43 编辑
先是批处理的:- @echo off & setlocal enabledelayedexpansion
- set time_sta=%time%
- set /p count=1000
- for /l %%a in (2,1,%count%) do (if %%a GTR 2 (set /a temp=%%a-1)
- set /a is_prime=1
- for /l %%b in (2,1,!temp!) do (
- set /a temp1=%%a%%%%b
- if !temp1! EQU 0 ( set /a is_prime = 0 ))
- if !is_prime! EQU 1 (echo %%a是一个质数!
- >>te1.txt echo %%a是一个质数!& set /a sum+=1
- ) else (echo %%a是一个合数!
- >>te1.txt echo %%a是一个合数!& set /a sum_1+=1))
- echo;质数有%sum%个
- >>te1.txt echo 质数有%sum%个
- echo;合数有%sum_1%个
- >>te1.txt echo 合数有%sum_1%个
- echo;开始时间为%time_sta%
- echo;结束时间为%time%
- pause & exit
复制代码 结果:
2是一个质数!
3是一个质数!
...
990是一个合数!
991是一个质数!
992是一个合数!
993是一个合数!
994是一个合数!
995是一个合数!
996是一个合数!
997是一个质数!
998是一个合数!
999是一个合数!
1000是一个合数!
质数有168个
合数有831个
开始时间为11:39:13.91
结束时间为11:39:29.11
请按任意键继续. . .
----------------------------------------------------------分割线---------------------------------------------------------
C:- #include <stdio.h>
- #include <stdlib.h>
-
- int prime(int n)
- {
- int is_prime = 1, i;
- if (n < 0)
- {
- return -1;
- }
- for (i=2; i<n; i++)
- {
- if (n % i == 0)
- {
- is_prime = 0;
- break;
- }
- }
- return is_prime;
- }
-
- int main()
- {
- FILE *fp;
- if ((fp = fopen("D:\\GIN\\temp\\te.txt", "w")) == NULL)
- {
- printf("fail to open file!");
- exit(0);
- }
- int a = 1000, b, i, sum = 0, sum_1 = 0;
- //printf("请输入一个整数:");
- //scanf("%d", &a);
- for (i=2; i<=a; i++)
- {
- b = prime(i);
- if (b == 0)
- {
- sum++;
- printf("%d是一个合数!\n", i);
- fprintf(fp, "%d是一个合数!\n", i);
- }
- else
- {
- sum_1++;
- printf("%d是一个质数!\n", i);
- fprintf(fp, "%d是一个质数!\n", i);
- }
- }
- printf("质数有%d个\n", sum_1);
- printf("合数有%d个\n", sum);
- fprintf(fp,"质数有%d个\n质数有%d个\n", sum_1, sum);
- fclose(fp);
- return 0;
- }
复制代码 结果:
2是一个质数!
3是一个质数!
...
990是一个合数!
991是一个质数!
992是一个合数!
993是一个合数!
994是一个合数!
995是一个合数!
996是一个合数!
997是一个质数!
998是一个合数!
999是一个合数!
1000是一个合数!
质数有168个
合数有831个
--------------------------------
Process exited after 0.1504 seconds with return value 0
请按任意键继续. . . |