
C運行速度快批處理好多啊計算1000以內質數)最后由 Gin_Q 于 -12-14 11:43先是批處理的:
結果:2是一個質數!3是一個質數!...990是一個合數!991是一個質數!992是一個合數!993是一個合數!994是一個合數!995是一個合數!996是一個合數!997是一個質數!998是一個合數!999是一個合數!1000是一個合數!質數有168個合數有831個開始時間為11:39:13.91結束時間為11:39:29.11請按任意鍵繼續. . .----------------------------------------------------------分割線---------------------------------------------------------C:nclick="copycode($('code0'));">復制代碼
- @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個--------------------------------Process exited after 0.1504 seconds with return value 0請按任意鍵繼續. . .nclick="copycode($('code1'));">復制代碼
- #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:GINtempte.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;
- }

