Cod sursa(job #2492716)

Utilizator DunareanuDinu Dunareanu Dunareanu Data 15 noiembrie 2019 10:10:17
Problema Oz Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin , *fout;

int main() {
    fin=fopen("nrdivunique.in","r");
    fout=fopen("nrdivunique.out","w");
    int n,a,b,i,j,d,c,x,y;
    fscanf(fin,"%d",&n);
    for(i=0;i<n;i++) {
        fscanf(fin,"%d%d",&a,&b);
        if(b>=2*a) {
            fprintf(fout,"%d\n",b);
        }
        else {
            c=0;
            d=2000000000;
            j=1;
            while(j*j<=b && j<=d) {
                x=a/j;
                if(a%j!=0) {
                    x++;
                }
                y=b/j;
                if(x<=y) {
                    c++;
                }
                if(j+1>x) {
                    x=j+1;
                }
                if(d<y) {
                    y=d;
                }
                if(x<=y) {
                    c+=y-x+1;
                    d=x-1;
                }
                j++;
            }
            fprintf(fout,"%d\n",c);
        }
    }
    fclose(fin);
    fclose(fout);
    return 0;
}